From 39d12294fd2483c4634c16fb54cfe5d8e3356ecf Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 16 Apr 2014 15:52:59 +0200 Subject: Mostly fix Dom XPath --- ext/dom/php_dom.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'ext/dom/php_dom.h') diff --git a/ext/dom/php_dom.h b/ext/dom/php_dom.h index 8f6eba12c0..82ba681ff8 100644 --- a/ext/dom/php_dom.h +++ b/ext/dom/php_dom.h @@ -68,18 +68,24 @@ extern zend_module_entry dom_module_entry; #define DOM_NODESET XML_XINCLUDE_START typedef struct _dom_xpath_object { - zend_object std; void *ptr; php_libxml_ref_obj *document; HashTable *prop_handler; - //??? zend_object_handle handle; int registerPhpFunctions; HashTable *registered_phpfunctions; HashTable *node_list; + zend_object std; } dom_xpath_object; +static inline dom_xpath_object *php_xpath_obj_from_obj(zend_object *obj) { + return (dom_xpath_object*)((char*)(obj) - XtOffsetOf(dom_xpath_object, std)); +} + +#define Z_XPATHOBJ_P(zv) php_xpath_obj_from_obj(Z_OBJ_P((zv))) + typedef struct _dom_nnodemap_object { dom_object *baseobj; + zval baseobj_zv; int nodetype; xmlHashTable *ht; xmlChar *local; -- cgit v1.2.1 From 59f6d189c8c6a2a11574b5b4ce98e0e8b6a7bc0b Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 16 Apr 2014 16:57:05 +0200 Subject: Fix remaining XPath issue --- ext/dom/php_dom.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'ext/dom/php_dom.h') diff --git a/ext/dom/php_dom.h b/ext/dom/php_dom.h index 82ba681ff8..628a19e978 100644 --- a/ext/dom/php_dom.h +++ b/ext/dom/php_dom.h @@ -68,17 +68,15 @@ extern zend_module_entry dom_module_entry; #define DOM_NODESET XML_XINCLUDE_START typedef struct _dom_xpath_object { - void *ptr; - php_libxml_ref_obj *document; - HashTable *prop_handler; int registerPhpFunctions; HashTable *registered_phpfunctions; HashTable *node_list; - zend_object std; + dom_object dom; } dom_xpath_object; static inline dom_xpath_object *php_xpath_obj_from_obj(zend_object *obj) { - return (dom_xpath_object*)((char*)(obj) - XtOffsetOf(dom_xpath_object, std)); + return (dom_xpath_object*)((char*)(obj) + - XtOffsetOf(dom_xpath_object, dom) - XtOffsetOf(dom_object, std)); } #define Z_XPATHOBJ_P(zv) php_xpath_obj_from_obj(Z_OBJ_P((zv))) -- cgit v1.2.1