diff options
author | Rob Richards <rrichards@php.net> | 2003-06-14 15:27:15 +0000 |
---|---|---|
committer | Rob Richards <rrichards@php.net> | 2003-06-14 15:27:15 +0000 |
commit | 6414becb62cad2ef1ecd5787c8c138d777024534 (patch) | |
tree | 3430bee632f279976f3725e5260fa27fd18c639e /ext/dom/xml_common.h | |
parent | e6502514fb04d49d6333f847e7f114c0bf3b5787 (diff) | |
download | php-git-6414becb62cad2ef1ecd5787c8c138d777024534.tar.gz |
fix xml_parser_inited on win32
add common structs for better interoprability
Diffstat (limited to 'ext/dom/xml_common.h')
-rw-r--r-- | ext/dom/xml_common.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ext/dom/xml_common.h b/ext/dom/xml_common.h index 7c6d784ba0..f931cfa3bb 100644 --- a/ext/dom/xml_common.h +++ b/ext/dom/xml_common.h @@ -27,12 +27,23 @@ typedef struct _node_list_pointer { void *next; } node_list_pointer; +typedef struct _doc_ref_obj { + void *ptr; + int refcount; +} doc_ref_obj; + typedef struct _dom_ref_obj { void *ptr; int refcount; node_list_pointer *node_list; } dom_ref_obj; +typedef struct _node_object { + zend_object std; + xmlNodePtr node; + doc_ref_obj *document; +} node_object; + typedef struct _dom_object { zend_object std; void *ptr; @@ -50,6 +61,9 @@ typedef struct _dom_object { #else #define PHPAPI __declspec(dllimport) #endif /* DOM_EXPORTS */ +#define DOM_IMPORT __declspec(dllimport) +#else +#define DOM_IMPORT extern #endif /* PHP_WIN32 */ #ifdef ZTS @@ -87,6 +101,16 @@ entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC); } \ } +#define DOC_GET_OBJ(__ptr, __id, __prtype, __intern) { \ + __intern = (node_object *)zend_object_store_get_object(__id TSRMLS_CC); \ + if (__intern->document != NULL) { \ + if (!(__ptr = (__prtype)__intern->document->ptr)) { \ + php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\ + RETURN_NULL();\ + } \ + } \ +} + #define DOM_DOMOBJ_NEW(zval, obj, ret, domobject) \ if (NULL == (zval = php_dom_create_object(obj, ret, zval, return_value, domobject TSRMLS_CC))) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); \ |