PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Feb 2009, PHP 5.2.9
+- Fixed bug #47353 (crash when creating a lot of objects in object destructor).
+ (Tony)
- Fixed bug #47322 (sscanf %d doesn't work). (Felipe)
- Fixed bug #46026 (bz2.decompress/zlib.inflate filter tries to decompress after
end of stream). (Greg)
if (obj->dtor && obj->object) {
obj->refcount++;
obj->dtor(obj->object, i TSRMLS_CC);
+ obj = &objects->object_buckets[i].bucket.obj;
obj->refcount--;
}
}
} zend_end_try();
}
}
+
+ /* re-read the object from the object store as the store might have been reallocated in the dtor */
+ obj = &EG(objects_store).object_buckets[handle].bucket.obj;
+
if (obj->refcount == 1) {
if (obj->free_storage) {
zend_try {
}
obj->clone(obj->object, &new_object TSRMLS_CC);
+ obj = &EG(objects_store).object_buckets[handle].bucket.obj;
retval.handle = zend_objects_store_put(new_object, obj->dtor, obj->free_storage, obj->clone TSRMLS_CC);
retval.handlers = Z_OBJ_HT_P(zobject);