diff options
| author | krakjoe <joe.watkins@live.co.uk> | 2014-05-05 22:45:29 +0100 |
|---|---|---|
| committer | krakjoe <joe.watkins@live.co.uk> | 2014-05-05 22:45:29 +0100 |
| commit | d7c529ed327cca4fad2c42fe74fabc367f24dc5b (patch) | |
| tree | 919d9e6800c6244436ddce9d09d707922fd859a4 /ext/libxml/php_libxml.h | |
| parent | 875c48ae679158cb2194c4e277810883e0b21768 (diff) | |
| parent | 211d32c81429730e2692c65577d021616a525726 (diff) | |
| download | php-git-d7c529ed327cca4fad2c42fe74fabc367f24dc5b.tar.gz | |
Merge branch 'phpng' of git.php.net:php-src into phpng
Diffstat (limited to 'ext/libxml/php_libxml.h')
| -rw-r--r-- | ext/libxml/php_libxml.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h index 901e321aac..b79ca17556 100644 --- a/ext/libxml/php_libxml.h +++ b/ext/libxml/php_libxml.h @@ -40,10 +40,11 @@ extern zend_module_entry libxml_module_entry; #define LIBXML_SAVE_NOEMPTYTAG 1<<2 ZEND_BEGIN_MODULE_GLOBALS(libxml) - zval *stream_context; + zval stream_context; smart_str error_buffer; zend_llist *error_list; struct _php_libxml_entity_resolver { + zval object; zend_fcall_info fci; zend_fcall_info_cache fcc; } entity_loader; @@ -74,12 +75,19 @@ typedef struct _php_libxml_node_ptr { } php_libxml_node_ptr; typedef struct _php_libxml_node_object { - zend_object std; php_libxml_node_ptr *node; php_libxml_ref_obj *document; HashTable *properties; + zend_object std; } php_libxml_node_object; + +static inline php_libxml_node_object *php_libxml_node_fetch_object(zend_object *obj) { + return (php_libxml_node_object *)((char*)(obj) - XtOffsetOf(php_libxml_node_object, std)); +} + +#define Z_LIBXML_NODE_P(zv) php_libxml_node_fetch_object(Z_OBJ_P((zv))) + typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC); PHP_LIBXML_API int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr node, void *private_data TSRMLS_DC); @@ -87,7 +95,7 @@ PHP_LIBXML_API int php_libxml_decrement_node_ptr(php_libxml_node_object *object PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr docp TSRMLS_DC); PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC); PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC); -PHP_LIBXML_API int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function); +PHP_LIBXML_API zval *php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function); /* When an explicit freeing of node and children is required */ PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC); /* When object dtor is called as node may still be referenced */ @@ -96,7 +104,7 @@ PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...); PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...); PHP_LIBXML_API void php_libxml_ctx_error(void *ctx, const char *msg, ...); PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s); -PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC); +PHP_LIBXML_API void php_libxml_switch_context(zval *context, zval *oldcontext TSRMLS_DC); PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg TSRMLS_DC); PHP_LIBXML_API zend_bool php_libxml_disable_entity_loader(zend_bool disable TSRMLS_DC); |
