diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-01-09 18:29:29 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-05-16 14:38:57 +0100 |
commit | 6031dd6e55216bd4d9a78c4869bb8b5e5f5aa3c3 (patch) | |
tree | 8776dc38c637434bae6ff1739ab6f6e774604c7f /src/jsapi-libdom-function.c | |
parent | 74158664a1826e5763e7c6949a915c75c8c1a23d (diff) | |
download | nsgenbind-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.c | 24 |
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) { |