rrichards Fri Jun 20 10:08:56 2003 EDT Modified files: /php4/ext/dom xml_common.h php_dom.h Log: cleanup common code Index: php4/ext/dom/xml_common.h diff -u php4/ext/dom/xml_common.h:1.8 php4/ext/dom/xml_common.h:1.9 --- php4/ext/dom/xml_common.h:1.8 Sun Jun 15 15:58:42 2003 +++ php4/ext/dom/xml_common.h Fri Jun 20 10:08:56 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xml_common.h,v 1.8 2003/06/15 19:58:42 rrichards Exp $ */ +/* $Id: xml_common.h,v 1.9 2003/06/20 14:08:56 rrichards Exp $ */ #ifndef PHP_XML_COMMON_H #define PHP_XML_COMMON_H @@ -52,36 +52,18 @@ #endif /* DOM_EXPORTS */ #endif /* PHP_WIN32 */ -#ifdef ZTS -#include "TSRM.h" -#endif - #define PHP_DOM_EXPORT(__type) PHPAPI __type PHP_DOM_EXPORT(zval *) php_dom_create_object(xmlNodePtr obj, int *found, zval *in, zval* return_value, dom_object *domobj TSRMLS_DC); -PHP_DOM_EXPORT(void) dom_objects_clone(void *object, void **object_clone TSRMLS_DC); -void dom_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC); PHP_DOM_EXPORT(zval *) dom_read_property(zval *object, zval *member TSRMLS_DC); PHP_DOM_EXPORT(void) dom_write_property(zval *object, zval *member, zval *value TSRMLS_DC); -zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC); -void dom_unregister_node(xmlNodePtr nodep TSRMLS_DC); -zend_object_handlers dom_object_handlers; #define DOM_XMLNS_NAMESPACE \ (const xmlChar *) "http://www.w3.org/2000/xmlns/" -#define DOM_NOT_IMPLEMENTED() \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not yet implemented"); \ - return; - -#define REGISTER_DOM_CLASS(ce, name, parent_ce, funcs, entry) \ -INIT_CLASS_ENTRY(ce, name, funcs); \ -ce.create_object = dom_objects_new; \ -entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC); - -#define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \ - __intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \ - if (!(__ptr = (__prtype)__intern->ptr)) { \ +#define NODE_GET_OBJ(__ptr, __id, __prtype, __intern) { \ + __intern = (node_object *)zend_object_store_get_object(__id TSRMLS_CC); \ + if (!(__ptr = (__prtype)__intern->node)) { \ php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\ RETURN_NULL();\ } \ @@ -97,14 +79,11 @@ } \ } -#define DOM_DOMOBJ_NEW(zval, obj, ret, domobject) \ +#define DOM_RET_OBJ(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"); \ RETURN_FALSE; \ } - -#define DOM_RET_OBJ(zval, obj, ret, domobject) \ - DOM_DOMOBJ_NEW(zval, obj, ret, domobject); #define DOM_GET_THIS(zval) \ if (NULL == (zval = getThis())) { \ Index: php4/ext/dom/php_dom.h diff -u php4/ext/dom/php_dom.h:1.5 php4/ext/dom/php_dom.h:1.6 --- php4/ext/dom/php_dom.h:1.5 Sun Jun 15 15:58:42 2003 +++ php4/ext/dom/php_dom.h Fri Jun 20 10:08:56 2003 @@ -18,12 +18,18 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.h,v 1.5 2003/06/15 19:58:42 rrichards Exp $ */ +/* $Id: php_dom.h,v 1.6 2003/06/20 14:08:56 rrichards Exp $ */ #ifndef PHP_DOM_H #define PHP_DOM_H -#if HAVE_DOM +extern zend_module_entry dom_module_entry; +#define dom_module_ptr &dom_module_entry + +#ifdef ZTS +#include "TSRM.h" +#endif + #include <libxml/parser.h> #include <libxml/parserInternals.h> #include <libxml/tree.h> @@ -49,15 +55,12 @@ Can be checked with phpversion("dom"); */ #define DOM_API_VERSION "20030413" - -extern zend_module_entry dom_module_entry; - -#define dom_module_ptr &dom_module_entry #include "dom_fe.h" void php_dom_set_object(dom_object *wrapper, void *obj TSRMLS_DC); dom_object *dom_object_get_data(xmlNodePtr obj); +zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC); void php_dom_throw_error(int error_code, zval **retval TSRMLS_DC); void node_free_resource(xmlNodePtr node TSRMLS_DC); void node_list_unlink(xmlNodePtr node TSRMLS_DC); @@ -72,19 +75,31 @@ int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child); int dom_has_feature(char *feature, char *version); +#define REGISTER_DOM_CLASS(ce, name, parent_ce, funcs, entry) \ +INIT_CLASS_ENTRY(ce, name, funcs); \ +ce.create_object = dom_objects_new; \ +entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC); + +#define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \ + __intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \ + if (!(__ptr = (__prtype)__intern->ptr)) { \ + php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\ + RETURN_NULL();\ + } \ +} + #define DOM_NO_ARGS() \ if (ZEND_NUM_ARGS() != 0) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expects exactly 0 parameters, %d given", ZEND_NUM_ARGS()); \ return; \ } +#define DOM_NOT_IMPLEMENTED() \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not yet implemented"); \ + return; + PHP_MINIT_FUNCTION(dom); PHP_MSHUTDOWN_FUNCTION(dom); PHP_MINFO_FUNCTION(dom); -#else -#define dom_module_ptr NULL - -#endif /* HAVE_DOM */ -#define phpext_dom_ptr dom_module_ptr #endif /* _PHP_DIR_H */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php