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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to