From 02096736454faa7c850ab34daffd3ba206c71f52 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 7 Jul 2012 17:38:52 +0100 Subject: HTML{Html,Head}Element: Unvirtualise accessors --- include/dom/html/html_head_element.h | 31 ++++--------------------------- include/dom/html/html_html_element.h | 30 ++++-------------------------- src/html/html_head_element.c | 22 +++------------------- src/html/html_head_element.h | 10 ---------- src/html/html_html_element.c | 22 +++------------------- src/html/html_html_element.h | 10 ---------- 6 files changed, 14 insertions(+), 111 deletions(-) diff --git a/include/dom/html/html_head_element.h b/include/dom/html/html_head_element.h index ce2a817..cb10358 100644 --- a/include/dom/html/html_head_element.h +++ b/include/dom/html/html_head_element.h @@ -12,33 +12,10 @@ typedef struct dom_html_head_element dom_html_head_element; -typedef struct dom_html_head_element_vtable { - struct dom_html_element_vtable base; - - dom_exception (*dom_html_head_element_get_profile)(struct dom_html_head_element *element, - dom_string **profile); - dom_exception (*dom_html_head_element_set_profile)(struct dom_html_head_element *element, - dom_string *profile); -} dom_html_head_element_vtable; - -static inline dom_exception dom_html_head_element_get_profile( - struct dom_html_head_element *element, dom_string **profile) -{ - return ((dom_html_head_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_head_element_get_profile(element, profile); -} -#define dom_html_head_element_get_profile(e, profile) \ - dom_html_head_element_get_profile((dom_html_head_element *) (e), (profile)) - -static inline dom_exception dom_html_head_element_set_profile( - struct dom_html_head_element *element, dom_string *profile) -{ - return ((dom_html_head_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_head_element_set_profile(element, profile); -} -#define dom_html_head_element_set_profile(e, profile) \ - dom_html_head_element_set_profile((dom_html_head_element *) (e), (profile)) - +dom_exception dom_html_head_element_get_profile( + struct dom_html_head_element *element, dom_string **profile); +dom_exception dom_html_head_element_set_profile( + struct dom_html_head_element *element, dom_string *profile); #endif diff --git a/include/dom/html/html_html_element.h b/include/dom/html/html_html_element.h index b7b69b2..5593daa 100644 --- a/include/dom/html/html_html_element.h +++ b/include/dom/html/html_html_element.h @@ -12,32 +12,10 @@ typedef struct dom_html_html_element dom_html_html_element; -typedef struct dom_html_html_element_vtable { - struct dom_html_element_vtable base; - - dom_exception (*dom_html_html_element_get_version)(struct dom_html_html_element *element, - dom_string **version); - dom_exception (*dom_html_html_element_set_version)(struct dom_html_html_element *element, - dom_string *version); -} dom_html_html_element_vtable; - -static inline dom_exception dom_html_html_element_get_version( - struct dom_html_html_element *element, dom_string **version) -{ - return ((dom_html_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_html_element_get_version(element, version); -} -#define dom_html_html_element_get_version(e, version) \ - dom_html_html_element_get_version((dom_html_html_element *) (e), (version)) - -static inline dom_exception dom_html_html_element_set_version( - struct dom_html_html_element *element, dom_string *version) -{ - return ((dom_html_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_html_element_set_version(element, version); -} -#define dom_html_html_element_set_version(e, version) \ - dom_html_html_element_set_version((dom_html_html_element *) (e), (version)) +dom_exception dom_html_html_element_get_version( + struct dom_html_html_element *element, dom_string **version); +dom_exception dom_html_html_element_set_version( + struct dom_html_html_element *element, dom_string *version); #endif diff --git a/src/html/html_head_element.c b/src/html/html_head_element.c index 6c5b99b..00d4476 100644 --- a/src/html/html_head_element.c +++ b/src/html/html_head_element.c @@ -20,22 +20,6 @@ static struct dom_element_protected_vtable _protect_vtable = { DOM_HTML_HEAD_ELEMENT_PROTECT_VTABLE }; -static struct dom_html_head_element_vtable _vtable = { - { - { - { - { - DOM_NODE_EVENT_TARGET_VTABLE - }, - DOM_NODE_VTABLE_ELEMENT, - }, - DOM_ELEMENT_VTABLE - }, - DOM_HTML_ELEMENT_VTABLE - }, - DOM_HTML_HEAD_ELEMENT_VTABLE -}; - /** * Create a dom_html_head_element object * @@ -55,7 +39,7 @@ dom_exception _dom_html_head_element_create(struct dom_html_document *doc, /* Set up vtables */ node = (struct dom_node_internal *) *ele; - node->base.vtable = &_vtable; + node->base.vtable = &_dom_html_element_vtable; node->vtable = &_protect_vtable; return _dom_html_head_element_initialise(doc, namespace, prefix, *ele); @@ -132,7 +116,7 @@ dom_exception _dom_html_head_element_copy(dom_node_internal *old, /*-----------------------------------------------------------------------*/ /* API functions */ -dom_exception _dom_html_head_element_get_profile(dom_html_head_element *element, +dom_exception dom_html_head_element_get_profile(dom_html_head_element *element, dom_string **profile) { dom_exception ret; @@ -147,7 +131,7 @@ dom_exception _dom_html_head_element_get_profile(dom_html_head_element *element, return ret; } -dom_exception _dom_html_head_element_set_profile(dom_html_head_element *element, +dom_exception dom_html_head_element_set_profile(dom_html_head_element *element, dom_string *profile) { dom_exception ret; diff --git a/src/html/html_head_element.h b/src/html/html_head_element.h index 65cc3c5..deb2d6a 100644 --- a/src/html/html_head_element.h +++ b/src/html/html_head_element.h @@ -48,15 +48,5 @@ dom_exception _dom_html_head_element_copy(dom_node_internal *old, _dom_virtual_html_head_element_destroy, \ _dom_html_head_element_copy -/* The API functions */ -dom_exception _dom_html_head_element_get_profile(dom_html_head_element *element, - dom_string **profile); -dom_exception _dom_html_head_element_set_profile(dom_html_head_element *element, - dom_string *profile); - -#define DOM_HTML_HEAD_ELEMENT_VTABLE \ - _dom_html_head_element_get_profile, \ - _dom_html_head_element_set_profile - #endif diff --git a/src/html/html_html_element.c b/src/html/html_html_element.c index be40008..ee26019 100644 --- a/src/html/html_html_element.c +++ b/src/html/html_html_element.c @@ -20,22 +20,6 @@ static struct dom_element_protected_vtable _protect_vtable = { DOM_HTML_HTML_ELEMENT_PROTECT_VTABLE }; -static struct dom_html_html_element_vtable _vtable = { - { - { - { - { - DOM_NODE_EVENT_TARGET_VTABLE - }, - DOM_NODE_VTABLE_ELEMENT, - }, - DOM_ELEMENT_VTABLE - }, - DOM_HTML_ELEMENT_VTABLE - }, - DOM_HTML_HTML_ELEMENT_VTABLE -}; - /** * Create a dom_html_html_element object * @@ -55,7 +39,7 @@ dom_exception _dom_html_html_element_create(struct dom_html_document *doc, /* Set up vtables */ node = (struct dom_node_internal *) *ele; - node->base.vtable = &_vtable; + node->base.vtable = &_dom_html_element_vtable; node->vtable = &_protect_vtable; return _dom_html_html_element_initialise(doc, namespace, prefix, *ele); @@ -132,7 +116,7 @@ dom_exception _dom_html_html_element_copy(dom_node_internal *old, /*-----------------------------------------------------------------------*/ /* API functions */ -dom_exception _dom_html_html_element_get_version(dom_html_html_element *element, +dom_exception dom_html_html_element_get_version(dom_html_html_element *element, dom_string **version) { dom_exception ret; @@ -147,7 +131,7 @@ dom_exception _dom_html_html_element_get_version(dom_html_html_element *element, return ret; } -dom_exception _dom_html_html_element_set_version(dom_html_html_element *element, +dom_exception dom_html_html_element_set_version(dom_html_html_element *element, dom_string *version) { dom_exception ret; diff --git a/src/html/html_html_element.h b/src/html/html_html_element.h index 3952beb..61eb626 100644 --- a/src/html/html_html_element.h +++ b/src/html/html_html_element.h @@ -48,15 +48,5 @@ dom_exception _dom_html_html_element_copy(dom_node_internal *old, _dom_virtual_html_html_element_destroy, \ _dom_html_html_element_copy -/* The API functions */ -dom_exception _dom_html_html_element_get_version(dom_html_html_element *element, - dom_string **version); -dom_exception _dom_html_html_element_set_version(dom_html_html_element *element, - dom_string *version); - -#define DOM_HTML_HTML_ELEMENT_VTABLE \ - _dom_html_html_element_get_version, \ - _dom_html_html_element_set_version - #endif -- cgit v1.2.3