cvs: php-src(PHP_5_0) /ext/wddx wddx.c

From: Date: Mon, 11 Apr 2005 09:28:13 +0000
Subject: cvs: php-src(PHP_5_0) /ext/wddx wddx.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-31344@lists.php.net to get a copy of this message
dmitry Mon Apr 11 05:28:13 2005 EDT Modified files: (Branch: PHP_5_0) /php-src/ext/wddx wddx.c Log: Support for encoding/decoding of private and protected members http://cvs.php.net/diff.php/php-src/ext/wddx/wddx.c?r1=1.111&r2=1.111.2.1&ty=u Index: php-src/ext/wddx/wddx.c diff -u php-src/ext/wddx/wddx.c:1.111 php-src/ext/wddx/wddx.c:1.111.2.1 --- php-src/ext/wddx/wddx.c:1.111 Tue Jun 29 21:12:03 2004 +++ php-src/ext/wddx/wddx.c Mon Apr 11 05:28:11 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: wddx.c,v 1.111 2004/06/30 01:12:03 iliaa Exp $ */ +/* $Id: wddx.c,v 1.111.2.1 2005/04/11 09:28:11 dmitry Exp $ */ #include "php.h" @@ -522,7 +522,10 @@ continue; if (zend_hash_get_current_key_ex(HASH_OF(obj), &key, &key_len, &idx, 0, NULL) == HASH_KEY_IS_STRING) { - php_wddx_serialize_var(packet, *ent, key, key_len TSRMLS_CC); + char *class_name, *prop_name; + + zend_unmangle_property_name(key, &class_name, &prop_name); + php_wddx_serialize_var(packet, *ent, prop_name, strlen(prop_name)+1 TSRMLS_CC); } else { key_len = sprintf(tmp_buf, "%ld", idx); php_wddx_serialize_var(packet, *ent, tmp_buf, key_len TSRMLS_CC); @@ -972,6 +975,13 @@ /* Clean up class name var entry */ zval_ptr_dtor(&ent1->data); + } else if (Z_TYPE_P(ent2->data) == IS_OBJECT) { + zend_class_entry *old_scope = EG(scope); + + EG(scope) = Z_OBJCE_P(ent2->data); + ent1->data->refcount--; + add_property_zval(ent2->data, ent1->varname, ent1->data); + EG(scope) = old_scope; } else zend_hash_update(target_hash, ent1->varname, strlen(ent1->varname)+1,

« previous php.cvs (#31344) next »