From 93c89193c1f2a29b00741d1494f262642108abe2 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 21 Nov 2012 15:21:42 +0000 Subject: make property shared status and type handling selection generic --- src/nsgenbind-ast.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'src/nsgenbind-ast.c') diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c index df6c608..fba7dcb 100644 --- a/src/nsgenbind-ast.c +++ b/src/nsgenbind-ast.c @@ -32,6 +32,7 @@ struct genbind_node { void *value; struct genbind_node *node; char *text; + int number; /* node data is an integer */ } r; }; @@ -140,6 +141,10 @@ genbind_node_find_type_ident(struct genbind_node *node, struct genbind_node *found_node; struct genbind_node *ident_node; + if (ident == NULL) { + return NULL; + } + found_node = genbind_node_find_type(node, prev, type); @@ -223,7 +228,7 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node) case GENBIND_NODE_TYPE_BINDING: case GENBIND_NODE_TYPE_BINDING_PRIVATE: case GENBIND_NODE_TYPE_BINDING_INTERNAL: - case GENBIND_NODE_TYPE_BINDING_UNSHARED: + case GENBIND_NODE_TYPE_BINDING_SHARED: case GENBIND_NODE_TYPE_OPERATION: case GENBIND_NODE_TYPE_API: case GENBIND_NODE_TYPE_GETTER: @@ -238,6 +243,21 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node) } +int genbind_node_getint(struct genbind_node *node) +{ + if (node != NULL) { + switch(node->type) { + case GENBIND_NODE_TYPE_MODIFIER: + return node->r.number; + + default: + break; + } + } + return -1; + +} + static const char *genbind_node_type_to_str(enum genbind_node_type type) { switch(type) { @@ -274,8 +294,8 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type) case GENBIND_NODE_TYPE_BINDING_INTERFACE: return "Interface"; - case GENBIND_NODE_TYPE_BINDING_UNSHARED: - return "Unshared"; + case GENBIND_NODE_TYPE_BINDING_SHARED: + return "Shared"; case GENBIND_NODE_TYPE_OPERATION: return "Operation"; -- cgit v1.2.3