From 2de93d957296913fc8e13d7deafaf7c61dfcf265 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Wed, 29 Apr 2009 12:44:35 +0000 Subject: Make dom_namednodemap and dom_nodelist more usable through macroes. Note, it is the partly-completed testcase that find this problem. Our DOMTS is on its way. svn path=/trunk/dom/; revision=7365 --- include/dom/core/namednodemap.h | 53 +++++++++++++++++++++++++++++++++++------ include/dom/core/nodelist.h | 5 +++- 2 files changed, 50 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/dom/core/namednodemap.h b/include/dom/core/namednodemap.h index 77c4cc3..fd2b754 100644 --- a/include/dom/core/namednodemap.h +++ b/include/dom/core/namednodemap.h @@ -21,24 +21,63 @@ void dom_namednodemap_unref(struct dom_namednodemap *map); dom_exception dom_namednodemap_get_length(struct dom_namednodemap *map, unsigned long *length); -dom_exception dom_namednodemap_get_named_item(struct dom_namednodemap *map, +dom_exception _dom_namednodemap_get_named_item(struct dom_namednodemap *map, struct dom_string *name, struct dom_node **node); -dom_exception dom_namednodemap_set_named_item(struct dom_namednodemap *map, + +#define dom_namednodemap_get_named_item(m, n, r) \ + _dom_namednodemap_get_named_item((dom_namednodemap *) (m), \ + (dom_string *) (n), (dom_node **) (r)) + + +dom_exception _dom_namednodemap_set_named_item(struct dom_namednodemap *map, struct dom_node *arg, struct dom_node **node); -dom_exception dom_namednodemap_remove_named_item( + +#define dom_namednodemap_set_named_item(m, a, n) \ + _dom_namednodemap_set_named_item((dom_namednodemap *) (m), \ + (dom_node *) (a), (dom_node **) (n)) + + +dom_exception _dom_namednodemap_remove_named_item( struct dom_namednodemap *map, struct dom_string *name, struct dom_node **node); -dom_exception dom_namednodemap_item(struct dom_namednodemap *map, + +#define dom_namednodemap_remove_named_item(m, n, r) \ + _dom_namednodemap_remove_named_item((dom_namednodemap *) (m), \ + (dom_string *) (n), (dom_node **) (n)) + + +dom_exception _dom_namednodemap_item(struct dom_namednodemap *map, unsigned long index, struct dom_node **node); -dom_exception dom_namednodemap_get_named_item_ns( +#define dom_namednodemap_item(m, i, n) _dom_namednodemap_item( \ + (dom_namednodemap *) (m), (unsigned long) (i), \ + (dom_node **) (n)) + + +dom_exception _dom_namednodemap_get_named_item_ns( struct dom_namednodemap *map, struct dom_string *namespace, struct dom_string *localname, struct dom_node **node); -dom_exception dom_namednodemap_set_named_item_ns( + +#define dom_namednodemap_get_named_item_ns(m, n, l, r) \ + _dom_namednodemap_get_named_item_ns((dom_namednodemap *) (m), \ + (dom_string *) (n), (dom_string *) (l), (dom_node **) (n)) + + +dom_exception _dom_namednodemap_set_named_item_ns( struct dom_namednodemap *map, struct dom_node *arg, struct dom_node **node); -dom_exception dom_namednodemap_remove_named_item_ns( + +#define dom_namednodemap_set_named_item_ns(m, a, n) \ + _dom_namednodemap_set_named_item_ns((dom_namednodemap *) (m), \ + (dom_node *) (a), (dom_node **) (n)) + + +dom_exception _dom_namednodemap_remove_named_item_ns( struct dom_namednodemap *map, struct dom_string *namespace, struct dom_string *localname, struct dom_node **node); +#define dom_namednodemap_remove_named_item_ns(m, n, l, r) \ + _dom_namednodemap_remove_named_item_ns((dom_namednodemap *) (m), \ + (dom_string *) (n), (dom_string *) (l), (dom_node **) (r)) + #endif diff --git a/include/dom/core/nodelist.h b/include/dom/core/nodelist.h index d3b0df9..2aad313 100644 --- a/include/dom/core/nodelist.h +++ b/include/dom/core/nodelist.h @@ -19,7 +19,10 @@ void dom_nodelist_unref(struct dom_nodelist *list); dom_exception dom_nodelist_get_length(struct dom_nodelist *list, unsigned long *length); -dom_exception dom_nodelist_item(struct dom_nodelist *list, +dom_exception _dom_nodelist_item(struct dom_nodelist *list, unsigned long index, struct dom_node **node); +#define dom_nodelist_item(l, i, n) _dom_nodelist_item((dom_nodelist *) (l), \ + (unsigned long) (i), (dom_node **) (n)) + #endif -- cgit v1.2.3