}
}
-void php_com_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+void php_com_object_free_storage(void *object TSRMLS_DC)
{
php_com_dotnet_object *obj = (php_com_dotnet_object*)object;
obj->code_page = CP_ACP;
obj->ce = ce;
- retval.handle = zend_objects_store_put(obj, php_com_object_dtor, php_com_object_clone TSRMLS_CC);
+
+ retval.handle = zend_objects_store_put(obj, NULL, php_com_object_free_storage, php_com_object_clone TSRMLS_CC);
retval.handlers = &php_com_object_handlers;
return retval;
IDispatch_GetTypeInfo(V_DISPATCH(&obj->v), 0, LANG_NEUTRAL, &obj->typeinfo);
Z_TYPE_P(z) = IS_OBJECT;
- z->value.obj.handle = zend_objects_store_put(obj, php_com_object_dtor, php_com_object_clone TSRMLS_CC);
+ z->value.obj.handle = zend_objects_store_put(obj, NULL, php_com_object_free_storage, php_com_object_clone TSRMLS_CC);
z->value.obj.handlers = &php_com_object_handlers;
}
Z_TYPE_P(z) = IS_OBJECT;
- z->value.obj.handle = zend_objects_store_put(obj, php_com_object_dtor, php_com_object_clone TSRMLS_CC);
+ z->value.obj.handle = zend_objects_store_put(obj, NULL, php_com_object_free_storage, php_com_object_clone TSRMLS_CC);
z->value.obj.handlers = &php_com_object_handlers;
}
saproxy_object_cast
};
-static void saproxy_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+static void saproxy_free_storage(void *object TSRMLS_DC)
{
php_com_saproxy *proxy = (php_com_saproxy *)object;
proxy->indices[proxy->dimensions-1] = index;
Z_TYPE_P(proxy_out) = IS_OBJECT;
- Z_OBJ_HANDLE_P(proxy_out) = zend_objects_store_put(proxy, saproxy_dtor, saproxy_clone TSRMLS_CC);
+ Z_OBJ_HANDLE_P(proxy_out) = zend_objects_store_put(proxy, NULL, saproxy_free_storage, saproxy_clone TSRMLS_CC);
Z_OBJ_HT_P(proxy_out) = &php_com_saproxy_handlers;
return 1;
/* com_handlers.c */
zend_object_value php_com_object_new(zend_class_entry *ce TSRMLS_DC);
void php_com_object_clone(void *object, void **clone_ptr TSRMLS_DC);
-void php_com_object_dtor(void *object, zend_object_handle handle TSRMLS_DC);
+void php_com_object_free_storage(void *object TSRMLS_DC);
zend_object_handlers php_com_object_handlers;
void php_com_object_enable_event_sink(php_com_dotnet_object *obj, int enable TSRMLS_DC);
/* }}} */
#if defined(LIBXML_XPATH_ENABLED)
-/* {{{ dom_xpath_objects_dtor */
-void dom_xpath_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+/* {{{ dom_xpath_objects_free_storage */
+void dom_xpath_objects_free_storage(void *object TSRMLS_DC)
{
dom_object *intern = (dom_object *)object;
/* }}} */
#endif
-/* {{{ dom_objects_dtor */
-void dom_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+/* {{{ dom_objects_free_storage */
+void dom_objects_free_storage(void *object TSRMLS_DC)
{
dom_object *intern = (dom_object *)object;
int retcount;
intern = dom_objects_set_class(class_type TSRMLS_CC);
- retval.handle = zend_objects_store_put(intern, dom_objects_dtor, dom_objects_clone TSRMLS_CC);
+ retval.handle = zend_objects_store_put(intern, NULL, dom_objects_free_storage, dom_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
retval.handlers = &dom_object_handlers;
intern = dom_objects_set_class(class_type TSRMLS_CC);
- retval.handle = zend_objects_store_put(intern, dom_xpath_objects_dtor, dom_objects_clone TSRMLS_CC);
+ retval.handle = zend_objects_store_put(intern, NULL, dom_xpath_objects_free_storage, dom_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
retval.handlers = &dom_object_handlers;
/* }}} */
#endif
-void dom_nnodemap_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+void dom_nnodemap_objects_free_storage(void *object TSRMLS_DC)
{
dom_nnodemap_object *objmap;
zval *baseobj;
objmap->local = NULL;
objmap->ns = NULL;
- retval.handle = zend_objects_store_put(intern, dom_nnodemap_objects_dtor, dom_objects_clone TSRMLS_CC);
+ retval.handle = zend_objects_store_put(intern, NULL, dom_nnodemap_objects_free_storage, dom_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
retval.handlers = &dom_object_handlers;
}
/* }}} */
-/* {{{ mysqli_objects_dtor
+/* {{{ mysqli_objects_free_storage
*/
-static void mysqli_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+static void mysqli_objects_free_storage(void *object TSRMLS_DC)
{
mysqli_object *intern = (mysqli_object *)object;
MYSQLI_RESOURCE *my_res = (MYSQLI_RESOURCE *)intern->ptr;
zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref,
(void *) &tmp, sizeof(zval *));
- retval.handle = zend_objects_store_put(intern, mysqli_objects_dtor, mysqli_objects_clone TSRMLS_CC);
+ retval.handle = zend_objects_store_put(intern, NULL, mysqli_objects_free_storage, mysqli_objects_clone TSRMLS_CC);
retval.handlers = &mysqli_object_handlers;
return retval;
/* {{{ match_ns()
*/
-static inline int
+static inline int
match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name)
{
if (name == NULL && (node->ns == NULL || node->ns->prefix == NULL)) {
return 1;
}
-
+
if (node->ns && !xmlStrcmp(node->ns->href, name)) {
return 1;
- }
+ }
return 0;
}
newnode = node;
++counter;
}
-
+
next_iter:
node = node->next;
}
xmlNodePtr node;
xmlAttrPtr attr = NULL;
int exists = 0;
-
+
sxe = php_sxe_fetch_object(object TSRMLS_CC);
name = Z_STRVAL_P(member);
exists = 1;
break;
}
-
+
attr = attr->next;
}
}
node = node->children;
while (node) {
nnext = node->next;
-
+
SKIP_TEXT(node);
-
+
if (!xmlStrcmp(node->name, Z_STRVAL_P(member))) {
xmlUnlinkNode(node);
php_libxml_node_free_resource(node TSRMLS_CC);
xmlChar *contents;
MAKE_STD_ZVAL(*value);
-
+
if (node->children && node->children->type == XML_TEXT_NODE && !xmlIsBlankNode(node->children)) {
contents = xmlNodeListGetString(node->doc, node->children, 1);
if (contents) {
goto next_iter;
}
}
-
+
name = (char *) node->name;
if (!name) {
goto next_iter;
}
_get_base_node_value(sxe, node, &value TSRMLS_CC);
-
+
h = zend_hash_func(name, namelen);
if (zend_hash_quick_find(rv, name, namelen, h, (void **) &data_ptr) == SUCCESS) {
if (Z_TYPE_PP(data_ptr) == IS_ARRAY) {
/* }}} */
/* {{{ xpath()
- */
+ */
SXE_METHOD(xpath)
{
php_sxe_object *sxe;
add_next_index_zval(return_value, value);
}
}
-
+
xmlXPathFreeObject(retval);
}
/* }}} */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &filename, &filename_len) == FAILURE) {
RETURN_FALSE;
}
-
+
sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
GET_NODE(sxe, node);
-
+
if (node) {
if (XML_DOCUMENT_NODE == node->parent->type) {
xmlSaveFile(filename, (xmlDocPtr) sxe->document->ptr);
if (outbuf == NULL) {
RETURN_FALSE;
- }
+ }
xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 1, NULL);
xmlOutputBufferClose(outbuf);
if (outbuf == NULL) {
RETURN_FALSE;
- }
+ }
xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 1, ((xmlDocPtr) sxe->document->ptr)->encoding);
xmlOutputBufferFlush(outbuf);
- strval = xmlStrndup(outbuf->buffer->content, outbuf->buffer->use);
+ strval = xmlStrndup(outbuf->buffer->content, outbuf->buffer->use);
xmlOutputBufferClose(outbuf);
}
}
/* }}} */
-/* {{{ sxe_object_dtor()
+/* {{{ _free_ns_entry()
+ */
+static void
+_free_ns_entry(void *p, xmlChar *data)
+{
+ xmlFree(p);
+}
+/* }}} */
+
+/* {{{ sxe_object_free_storage()
*/
-static void sxe_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+static void sxe_object_free_storage(void *object TSRMLS_DC)
{
php_sxe_object *sxe;
if (sxe->xpath) {
xmlXPathFreeContext(sxe->xpath);
}
-
+
if (sxe->properties) {
zend_hash_destroy(sxe->properties);
FREE_HASHTABLE(sxe->properties);
}
-
+
efree(object);
}
/* }}} */
-/* {{{ php_sxe_object_new()
+/* {{{ php_sxe_object_new()
*/
static php_sxe_object* php_sxe_object_new(zend_class_entry *ce TSRMLS_DC)
{
{
zend_object_value rv;
- rv.handle = zend_objects_store_put(intern, sxe_object_dtor, sxe_object_clone TSRMLS_CC);
+ rv.handle = zend_objects_store_put(intern, NULL, sxe_object_free_storage, sxe_object_clone TSRMLS_CC);
rv.handlers = (zend_object_handlers *) &sxe_object_handlers;
return rv;
while (node) {
SKIP_TEXT(node);
if (sxe->iter.type != SXE_ITER_ATTRLIST && node->type == XML_ELEMENT_NODE) {
- if (sxe->iter.type == SXE_ITER_ELEMENT) {
+ if (sxe->iter.type == SXE_ITER_ELEMENT) {
if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix)) {
break;
}
iterator->intern.data = (void*)object;
iterator->intern.funcs = &php_sxe_iterator_funcs;
iterator->sxe = php_sxe_fetch_object(object TSRMLS_CC);
-
+
return (zend_object_iterator*)iterator;
}
php_sxe_iterator *iterator = (php_sxe_iterator *)iter;
zval_ptr_dtor((zval**)&iterator->intern.data);
-
+
efree(iterator);
}
-
+
static int php_sxe_iterator_has_more(zend_object_iterator *iter TSRMLS_DC)
{
php_sxe_iterator *iterator = (php_sxe_iterator *)iter;
SKIP_TEXT(node);
if (sxe->iter.type != SXE_ITER_ATTRLIST && node->type == XML_ELEMENT_NODE) {
- if (sxe->iter.type == SXE_ITER_ELEMENT) {
+ if (sxe->iter.type == SXE_ITER_ELEMENT) {
if (!xmlStrcmp(node->name, sxe->iter.name) && match_ns(sxe, node, prefix)) {
break;
}
}
ce = *pce;
}
-
+
sxe = php_sxe_object_new(ce TSRMLS_CC);
sxe->document = object->document;
php_libxml_increment_doc_ref((php_libxml_node_object *)sxe, nodep->doc TSRMLS_CC);
php_info_print_table_start();
php_info_print_table_header(2, "Simplexml support", "enabled");
php_info_print_table_row(2, "Revision", "$Revision$");
- php_info_print_table_row(2, "Schema support",
+ php_info_print_table_row(2, "Schema support",
#ifdef LIBXML_SCHEMAS_ENABLED
"enabled");
#else
return le->ptr == ptr ? ZEND_HASH_APPLY_REMOVE : ZEND_HASH_APPLY_KEEP;
}
-static void sqlite_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+static void sqlite_object_free_storage(void *object TSRMLS_DC)
{
sqlite_object *intern = (sqlite_object *)object;
zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
- retval->handle = zend_objects_store_put(intern, sqlite_object_dtor, NULL TSRMLS_CC);
+ retval->handle = zend_objects_store_put(intern, NULL, sqlite_object_free_storage, NULL TSRMLS_CC);
retval->handlers = handlers;
}
};
static char *php_tidy_file_to_mem(char *, zend_bool TSRMLS_DC);
-static void tidy_object_dtor(void *, zend_object_handle TSRMLS_DC);
+static void tidy_object_free_storage(void * TSRMLS_DC);
static zend_object_value tidy_object_new_node(zend_class_entry * TSRMLS_DC);
static zend_object_value tidy_object_new_doc(zend_class_entry * TSRMLS_DC);
static zend_object_value tidy_object_new_exception(zend_class_entry * TSRMLS_DC);
return data;
}
-static void tidy_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+static void tidy_object_free_storage(void *object TSRMLS_DC)
{
PHPTidyObj *intern = (PHPTidyObj *)object;
break;
}
- retval->handle = zend_objects_store_put(intern, tidy_object_dtor, NULL TSRMLS_CC);
+ retval->handle = zend_objects_store_put(intern, NULL, tidy_object_free_storage, NULL TSRMLS_CC);
retval->handlers = handlers;
}
}
/* }}} */
-/* {{{ xsl_objects_dtor */
-void xsl_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC)
+/* {{{ xsl_objects_free_storage */
+void xsl_objects_free_storage(void *object TSRMLS_DC)
{
xsl_object *intern = (xsl_object *)object;
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
ALLOC_HASHTABLE(intern->parameter);
zend_hash_init(intern->parameter, 0, NULL, ZVAL_PTR_DTOR, 0);
- retval.handle = zend_objects_store_put(intern, xsl_objects_dtor, xsl_objects_clone TSRMLS_CC);
+ retval.handle = zend_objects_store_put(intern, NULL, xsl_objects_free_storage, xsl_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
retval.handlers = &xsl_object_handlers;
return retval;
} xsl_object;
void php_xsl_set_object(zval *wrapper, void *obj TSRMLS_DC);
-void xsl_objects_dtor(void *object, zend_object_handle handle TSRMLS_DC);
+void xsl_objects_free_storage(void *object TSRMLS_DC);
zval *php_xsl_create_object(xsltStylesheetPtr obj, int *found, zval *wrapper_in, zval *return_value TSRMLS_DC);
#define REGISTER_XSL_CLASS(ce, name, parent_ce, funcs, entry) \