diff options
author | Vincent Sanders <vince@kyllikki.org> | 2013-12-16 00:08:27 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-05-16 14:38:56 +0100 |
commit | abec5defbb553588dce1c317b74570061705f6d0 (patch) | |
tree | a88c2e25cf45358355219a6f832d227cebeffe9e /src/jsapi-libdom-property.c | |
parent | 5755930ae93b6305b40620fff0e90bc2e4c64b46 (diff) | |
download | nsgenbind-abec5defbb553588dce1c317b74570061705f6d0.tar.gz nsgenbind-abec5defbb553588dce1c317b74570061705f6d0.tar.bz2 |
add flags to interface within binding
Diffstat (limited to 'src/jsapi-libdom-property.c')
-rw-r--r-- | src/jsapi-libdom-property.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/jsapi-libdom-property.c b/src/jsapi-libdom-property.c index 2bd3068..091b2c6 100644 --- a/src/jsapi-libdom-property.c +++ b/src/jsapi-libdom-property.c @@ -229,6 +229,7 @@ get_binding_shared_modifier(struct binding *binding, const char *type, const cha { struct genbind_node *shared_node; struct genbind_node *shared_mod_node; + enum genbind_type_modifier *shared_modifier; /* look for node matching the ident first */ shared_node = genbind_node_find_type_ident(binding->binding_list, @@ -251,9 +252,11 @@ get_binding_shared_modifier(struct binding *binding, const char *type, const cha shared_mod_node = genbind_node_find_type(genbind_node_getnode(shared_node), NULL, GENBIND_NODE_TYPE_MODIFIER); - if (shared_mod_node != NULL) { - return genbind_node_getint(shared_mod_node); + shared_modifier = (enum genbind_type_modifier *)genbind_node_getint(shared_mod_node); + if (shared_modifier != NULL) { + return *shared_modifier; } + } return GENBIND_TYPE_NONE; } @@ -1108,14 +1111,16 @@ static int typehandler_property_cb(struct genbind_node *node, void *ctx) struct genbind_node *ident_node; const char *type; struct genbind_node *mod_node; - enum genbind_type_modifier share_mod; + enum genbind_type_modifier *share_mod; int ret = 0; mod_node = genbind_node_find_type(genbind_node_getnode(node), NULL, GENBIND_NODE_TYPE_MODIFIER); - share_mod = genbind_node_getint(mod_node); - if ((share_mod & GENBIND_TYPE_TYPE) == GENBIND_TYPE_TYPE) { + share_mod = (enum genbind_type_modifier *)genbind_node_getint(mod_node); + + if ((share_mod != NULL) && + ((*share_mod & GENBIND_TYPE_TYPE) == GENBIND_TYPE_TYPE)) { /* type handler */ ident_node = genbind_node_find_type(genbind_node_getnode(node), |