Browse Source

ok, this is a zend bug.

migration/unlabaled-1.3.2
Sterling Hughes 23 years ago
parent
commit
21d90d6ac4
  1. 5
      ext/simplexml/examples/book.php
  2. 11
      ext/simplexml/simplexml.c

5
ext/simplexml/examples/book.php

@ -1,6 +1,7 @@
<?php
$books = simplexml_load_file('book.xml')->book;
$books = simplexml_load_file('book.xml');
//var_dump($books);
$books = $books->book;
foreach ($books as $book) {
echo "{$book->title} was written by {$book->author}\n";
}

11
ext/simplexml/simplexml.c

@ -783,13 +783,14 @@ sxe_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
sxe = (php_sxe_object *) object;
FREE_HASHTABLE(sxe->zo.properties);
if (--sxe->document->refcount > 0) {
return;
}
xmlFreeDoc(sxe->document->ptr);
FREE_HASHTABLE(sxe->zo.properties);
efree(sxe->document);
if (sxe->xpath) {
xmlXPathFreeContext(sxe->xpath);
}
@ -858,8 +859,8 @@ PHP_FUNCTION(simplexml_load_file)
sxe = php_sxe_object_new(TSRMLS_C);
sxe->document = emalloc(sizeof(simplexml_ref_obj));
sxe->document->refcount = 1;
sxe->document->ptr = (void *) xmlParseFile(filename);
sxe->document->refcount = 1;
if (sxe->document->ptr == NULL) {
efree(sxe->document);
RETURN_FALSE;
@ -893,7 +894,7 @@ PHP_FUNCTION(simplexml_load_string)
RETURN_FALSE;
}
sxe->nsmap = xmlHashCreate(10);
return_value->type = IS_OBJECT;
return_value->value.obj = php_sxe_register_object(sxe TSRMLS_CC);
}

Loading…
Cancel
Save