aboutsummaryrefslogtreecommitdiff
path: root/find-modules
diff options
context:
space:
mode:
Diffstat (limited to 'find-modules')
-rwxr-xr-xfind-modules/rules_engine.py8
-rw-r--r--find-modules/sip_generator.py11
2 files changed, 12 insertions, 7 deletions
diff --git a/find-modules/rules_engine.py b/find-modules/rules_engine.py
index 64ce1d97..34bd15dc 100755
--- a/find-modules/rules_engine.py
+++ b/find-modules/rules_engine.py
@@ -224,7 +224,10 @@ class ContainerRuleDb(AbstractCompiledRuleDb):
:return: Modifying rule or None (even if a rule matched, it may not modify things).
"""
parents = _parents(container)
- matcher, rule = self._match(parents, sip["name"], sip["template_parameters"], sip["decl"], sip["base_specifiers"])
+ matcher, rule = self._match(parents, sip["name"],
+ ", ".join(sip["template_parameters"]),
+ sip["decl"],
+ ", ".join(sip["base_specifiers"]))
if matcher:
before = deepcopy(sip)
rule.fn(container, sip, matcher)
@@ -882,6 +885,9 @@ def function_discard_impl(container, function, sip, matcher):
def typedef_discard(container, typedef, sip, matcher):
sip["name"] = ""
+def discard_QSharedData_base(container, sip, matcher):
+ sip["base_specifiers"].remove("QSharedData")
+
def rules(project_rules):
"""
Constructor.
diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py
index a8c164b5..41dd6369 100644
--- a/find-modules/sip_generator.py
+++ b/find-modules/sip_generator.py
@@ -345,9 +345,9 @@ class SipGenerator(object):
#
# Flesh out the SIP context for the rules engine.
#
- sip["template_parameters"] = ", ".join(template_type_parameters)
+ sip["template_parameters"] = template_type_parameters
sip["decl"] = container_type
- sip["base_specifiers"] = ", ".join(base_specifiers)
+ sip["base_specifiers"] = base_specifiers
sip["body"] = body
modifying_rule = self.rules.container_rules().apply(container, sip)
pad = " " * (level * 4)
@@ -364,11 +364,11 @@ class SipGenerator(object):
body = pad + "// Discarded {} (by {})\n".format(SipGenerator.describe(container), "/External/ handling")
else:
if sip["base_specifiers"]:
- decl += ": " + sip["base_specifiers"]
+ decl += ": " + ", ".join(sip["base_specifiers"])
if sip["annotations"]:
decl += " /" + ",".join(sip["annotations"]) + "/"
if sip["template_parameters"]:
- decl = pad + "template <" + sip["template_parameters"] + ">\n" + decl
+ decl = pad + "template <" + ", ".join(sip["template_parameters"]) + ">\n" + decl
decl += "\n" + pad + "{\n"
decl += "%TypeHeaderCode\n#include <{}>\n%End\n".format(include_filename)
body = decl + sip["body"] + pad + "};\n"
@@ -511,13 +511,12 @@ class SipGenerator(object):
if parameter_modifying_rules:
decl += pad
- sip["template_parameters"] = ", ".join(sip["template_parameters"])
decl += sip["name"] + "(" + ", ".join(sip["parameters"]) + ")"
if sip["fn_result"]:
decl = sip["fn_result"] + " " + decl
decl = pad + sip["prefix"] + decl + sip["suffix"]
if sip["template_parameters"]:
- decl = pad + "template <" + sip["template_parameters"] + ">\n" + decl
+ decl = pad + "template <" + ", ".join(sip["template_parameters"]) + ">\n" + decl
decl += ";\n"
decl += sip["code"]
else: