diff options
author | Rob Richards <rrichards@php.net> | 2003-06-07 13:30:58 +0000 |
---|---|---|
committer | Rob Richards <rrichards@php.net> | 2003-06-07 13:30:58 +0000 |
commit | 0565d9724bb3ea229b004e5a21b0d7ab8a62a553 (patch) | |
tree | c1c34ba23ec04eca75157e4e2734499f60fb4c58 /ext/dom/xml_common.h | |
parent | eccfbe5f88651a50e2c6994f6f357d3e176e2ced (diff) | |
download | php-git-0565d9724bb3ea229b004e5a21b0d7ab8a62a553.tar.gz |
fix more memory overruns
initial definition for document ref counting
fixed property access to support all objects
clear property handler from invalid objects until ref count implemented
Diffstat (limited to 'ext/dom/xml_common.h')
-rw-r--r-- | ext/dom/xml_common.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/dom/xml_common.h b/ext/dom/xml_common.h index 6188e56020..0c88bae040 100644 --- a/ext/dom/xml_common.h +++ b/ext/dom/xml_common.h @@ -27,9 +27,15 @@ typedef struct _node_list_pointer { void *next; } node_list_pointer; +typedef struct _dom_ref_obj { + void *ptr; + int refcount; +} dom_ref_obj; + typedef struct _dom_object { zend_object std; void *ptr; + dom_ref_obj *document; HashTable *prop_handler; node_list_pointer *node_list; } dom_object; @@ -71,7 +77,6 @@ zend_object_handlers dom_object_handlers; INIT_CLASS_ENTRY(ce, name, funcs); \ ce.create_object = dom_objects_new; \ entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC); -/* entry = zend_register_internal_ns_class(&ce, parent_ce, ns, NULL TSRMLS_CC); */ #define DOM_GET_OBJ(__ptr, __id, __prtype) { \ dom_object *intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \ |