summaryrefslogtreecommitdiff
path: root/ext/dom/xml_common.h
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2014-04-15 17:41:13 +0200
committerNikita Popov <nikic@php.net>2014-04-15 20:32:46 +0200
commit2f0a758fbbf39ff8684d167f86c708cc361db782 (patch)
treef3179a8e1f589bb27ef892e953ed38607488394f /ext/dom/xml_common.h
parentf9b26bc39a9ea9b1380628eeb0e6dad3c93cfcb0 (diff)
downloadphp-git-2f0a758fbbf39ff8684d167f86c708cc361db782.tar.gz
Start working on dom extension
Nowhere near compiling yet...
Diffstat (limited to 'ext/dom/xml_common.h')
-rw-r--r--ext/dom/xml_common.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/ext/dom/xml_common.h b/ext/dom/xml_common.h
index 61d9854e1d..17b3a5733e 100644
--- a/ext/dom/xml_common.h
+++ b/ext/dom/xml_common.h
@@ -27,13 +27,18 @@
typedef libxml_doc_props *dom_doc_propsptr;
typedef struct _dom_object {
- zend_object std;
void *ptr;
php_libxml_ref_obj *document;
HashTable *prop_handler;
- zend_object_handle handle;
+ zend_object std;
} dom_object;
+static inline dom_object *php_dom_obj_from_obj(zend_object *obj) {
+ return (dom_object*)((char*)(obj) - XtOffsetOf(dom_object, std));
+}
+
+#define Z_DOMOBJ_P(zv) php_dom_obj_from_obj(Z_OBJ_P((zv)))
+
#ifdef PHP_WIN32
# ifdef PHPAPI
# undef PHPAPI
@@ -54,7 +59,7 @@ typedef struct _dom_object {
PHP_DOM_EXPORT extern zend_class_entry *dom_node_class_entry;
PHP_DOM_EXPORT dom_object *php_dom_object_get_data(xmlNodePtr obj);
-PHP_DOM_EXPORT zval *php_dom_create_object(xmlNodePtr obj, int *found, zval* return_value, dom_object *domobj TSRMLS_DC);
+PHP_DOM_EXPORT zend_bool php_dom_create_object(xmlNodePtr obj, zval* return_value, dom_object *domobj TSRMLS_DC);
PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj);
#define DOM_XMLNS_NAMESPACE \
@@ -79,10 +84,7 @@ PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj);
}
#define DOM_RET_OBJ(obj, ret, domobject) \
- if (!php_dom_create_object(obj, ret, return_value, domobject TSRMLS_CC)) { \
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); \
- RETURN_FALSE; \
- }
+ *ret = php_dom_create_object(obj, return_value, domobject TSRMLS_CC)
#define DOM_GET_THIS(zval) \
if (NULL == (zval = getThis())) { \