rrichards Sat Jun 14 11:27:15 2003 EDT Modified files: /php4/ext/dom php_dom.c xml_common.h Log: fix xml_parser_inited on win32 add common structs for better interoprability Index: php4/ext/dom/php_dom.c diff -u php4/ext/dom/php_dom.c:1.10 php4/ext/dom/php_dom.c:1.11 --- php4/ext/dom/php_dom.c:1.10 Thu Jun 12 16:02:05 2003 +++ php4/ext/dom/php_dom.c Sat Jun 14 11:27:15 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.10 2003/06/12 20:02:05 rrichards Exp $ */ +/* $Id: php_dom.c,v 1.11 2003/06/14 15:27:15 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -37,7 +37,7 @@ #define PHP_XPATH 1 #define PHP_XPTR 2 -extern int xml_parser_inited; +DOM_IMPORT int xml_parser_inited; zend_object_handlers dom_object_handlers; Index: php4/ext/dom/xml_common.h diff -u php4/ext/dom/xml_common.h:1.5 php4/ext/dom/xml_common.h:1.6 --- php4/ext/dom/xml_common.h:1.5 Tue Jun 10 16:03:27 2003 +++ php4/ext/dom/xml_common.h Sat Jun 14 11:27:15 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xml_common.h,v 1.5 2003/06/10 20:03:27 imajes Exp $ */ +/* $Id: xml_common.h,v 1.6 2003/06/14 15:27:15 rrichards Exp $ */ #ifndef PHP_XML_COMMON_H #define PHP_XML_COMMON_H @@ -27,12 +27,23 @@ 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 @@ #else #define PHPAPI __declspec(dllimport) #endif /* DOM_EXPORTS */ +#define DOM_IMPORT __declspec(dllimport) +#else +#define DOM_IMPORT extern #endif /* PHP_WIN32 */ #ifdef ZTS @@ -85,6 +99,16 @@ php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\ RETURN_NULL();\ } \ +} + +#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) \
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php