Zend bug? Overloading API in PHP4

From: Date: Fri, 15 Aug 2003 22:10:45 +0000
Subject: Zend bug? Overloading API in PHP4
Groups: php.internals 
Request: Send a blank email to internals+get-4007@lists.php.net to get a copy of this message
Did the overloading API in PHP4 actually ever work? I have done some simple stuff with it in the past, but I tried using it for something real today and it is falling over. I have a very simple example extension which illustrates it. See http://lerdorf.com/ovl.tar.gz For the lazy, here is the meat of it. The problem is in my set function which looks like this: int _ovl_property_set(zend_property_reference *prop_ref, zval *value) { zend_llist_element *element = prop_ref->elements_list->head; zval overloaded_property = ((zend_overloaded_element *)(element->data))->element; zval_add_ref(&value); add_property_zval(prop_ref->object, Z_STRVAL(overloaded_property), value); return SUCCESS; } If I do: $obj->foo = array(1,2,3); Then the zval value that gets passed to my set function is messed up. If instead I do: $tmp = array(1,2,3); $obj->foo = $tmp; Then everything is fine. The http://lerdorf.com/ovl.tar.gz tarball has a full self-contained example of the problem if someone wouldn't mind having a look. -Rasmus

« previous php.internals (#4007) next »