summaryrefslogtreecommitdiff
path: root/src/jsapi-libdom-function.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-01-09 18:29:29 +0000
committerVincent Sanders <vince@kyllikki.org>2014-05-16 14:38:57 +0100
commit6031dd6e55216bd4d9a78c4869bb8b5e5f5aa3c3 (patch)
tree8776dc38c637434bae6ff1739ab6f6e774604c7f /src/jsapi-libdom-function.c
parent74158664a1826e5763e7c6949a915c75c8c1a23d (diff)
downloadnsgenbind-6031dd6e55216bd4d9a78c4869bb8b5e5f5aa3c3.tar.gz
nsgenbind-6031dd6e55216bd4d9a78c4869bb8b5e5f5aa3c3.tar.bz2
Expand implements statements in the AST after it has been built
This greatly simplifies output generation because instead of dealing with implements on every traverse they are expanded once. Additionaly errors in expansion are found and generate error early.
Diffstat (limited to 'src/jsapi-libdom-function.c')
-rw-r--r--src/jsapi-libdom-function.c24
1 files changed, 1 insertions, 23 deletions
diff --git a/src/jsapi-libdom-function.c b/src/jsapi-libdom-function.c
index 4970b48..5540b0e 100644
--- a/src/jsapi-libdom-function.c
+++ b/src/jsapi-libdom-function.c
@@ -45,13 +45,6 @@ static int webidl_func_spec_cb(struct webidl_node *node, void *ctx)
static int generate_function_spec(struct binding *binding, const char *interface);
-/* callback to emit implements operator spec */
-static int webidl_function_spec_implements_cb(struct webidl_node *node, void *ctx)
-{
- struct binding *binding = ctx;
-
- return generate_function_spec(binding, webidl_node_gettext(node));
-}
static int
generate_function_spec(struct binding *binding, const char *interface)
@@ -104,13 +97,6 @@ generate_function_spec(struct binding *binding, const char *interface)
webidl_node_gettext(inherit_node));
}
- if (res == 0) {
- res = webidl_node_for_each_type(webidl_node_getnode(interface_node),
- WEBIDL_NODE_TYPE_INTERFACE_IMPLEMENTS,
- webidl_function_spec_implements_cb,
- binding);
- }
-
return res;
}
@@ -878,14 +864,6 @@ output_function_body(struct binding *binding,
res = webidl_implements_cb(inherit_node, binding);
}
- if (res == 0) {
- res = webidl_node_for_each_type(
- webidl_node_getnode(interface_node),
- WEBIDL_NODE_TYPE_INTERFACE_IMPLEMENTS,
- webidl_implements_cb,
- binding);
- }
-
return res;
}
@@ -893,7 +871,7 @@ int
output_function_bodies(struct binding *binding)
{
int inf;
- int res;
+ int res = 0;
for (inf=0; inf < binding->interfacec; inf++) {
if (binding->interfaces[inf].inherit_idx == -1) {