- fprintf(stderr, " container= %-10p <%12s rc=%d ",
- Z_REFCOUNTED(proxy->container) ? Z_COUNTED(proxy->container) : NULL,
- types[Z_TYPE(proxy->container)],
- Z_REFCOUNTED(proxy->container) ? Z_REFCOUNT(proxy->container) : 0);
- if (Z_ISREF(proxy->container)) {
- zval *ref = Z_REFVAL(proxy->container);
+ ZVAL_UNDEF(&tmp);
+ if (obj) {
+ if (Z_ISUNDEF(obj->parent)) {
+ container = &obj->proxy->container;
+ } else {
+ zval parent_tmp, *parent_container;
+ php_property_proxy_object_t *parent_obj = get_propro(&obj->parent);
+
+ ZVAL_UNDEF(&parent_tmp);
+ parent_container = get_container(&obj->parent, &parent_tmp);
+ container = get_container_value(parent_container, parent_obj->proxy->member, &tmp);
+ }
+ }
+ fprintf(stderr, " container= %-14p < %-10s rc=%-11d ",
+ Z_REFCOUNTED_P(container) ? Z_COUNTED_P(container) : NULL,
+ _type(container),
+ Z_REFCOUNTED_P(container) ? Z_REFCOUNT_P(container) : 0);
+ if (Z_ISREF_P(container)) {
+ zval *ref = Z_REFVAL_P(container);