Changeset 1576 in svn
- Timestamp:
- 2014-11-12T18:55:52Z (4 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/processor/foot.m4
r1572 r1576 125 125 if (processor.handle_reference) { 126 126 zend_hash_init(&processor.zvalptrs, 0, NULL, NULL, 0); 127 if (dst_ptr) {128 zval_ptr_dtor(dst_ptr);129 }130 127 } 131 128 processor.index_to_ce = index_to_ce; … … 145 142 } 146 143 #endif 144 zval_ptr_dtor(&dst); 147 145 if (dst_ptr) { 148 146 xc_restore_zval_ptr(&processor, dst_ptr, &src->value TSRMLS_CC); 147 Z_ADDREF(**dst_ptr); 149 148 } 150 149 else { 151 150 xc_restore_zval(&processor, dst, src->value TSRMLS_CC); 151 Z_ADDREF(*dst); 152 152 } 153 153 if (processor.handle_reference) { -
trunk/processor/processor.m4
r1572 r1576 307 307 ') 308 308 if (zend_hash_add(&processor->zvalptrs, (char *) &SRC()[0], sizeof(SRC()[0]), (void *) &pzv, sizeof(pzv), NULL) == SUCCESS) { /* first add, go on */ 309 IFSTORE(`Z_SET_REFCOUNT(**DST(), 1);')310 309 dnl IFSTORE(`fprintf(stderr, "mark[%p] = %p\n", (void *) SRC()[0], (void *) pzv);') 311 310 } … … 320 319 IFDPRINT(`INDENT()`'fprintf(stderr, "[%p] ", (void *) SRC()[0]);') 321 320 STRUCT_P_EX(zval, DST()[0], SRC()[0], `[0]', `', ` ') 321 dnl don't set refcount in zval processor 322 IFSTORE(`Z_SET_REFCOUNT(**DST(), 1);') 322 323 RELOCATE_EX(zval, DST()[0]) 323 324 } while (0); … … 1419 1420 IFDPRINT(`INDENT()`'fprintf(stderr, "zval:value");') 1420 1421 STRUCT_P_EX(zval_ptr, DST(`value'), SRC(`value'), `value', `', `&') 1422 DONE(value) 1421 1423 #if 0 1422 1424 IFSTORE(` … … 1425 1427 zval **zv; 1426 1428 1427 assert(Z_TYPE_P( SRC(`value')) == IS_ARRAY);1428 ht = Z_ARRVAL_P( SRC(`value'));1429 assert(Z_TYPE_P(DST(`value')) == IS_ARRAY); 1430 ht = Z_ARRVAL_P(DST(`value')); 1429 1431 assert(ht->nNumOfElements == 1); 1430 1432 fprintf(stderr, "key %s\n", ht->pListHead->arKey); 1431 1433 1432 1434 zv = (zval **) ht->pListHead->pData; 1433 fprintf(stderr, "%d\n", Z_TYPE_PP(zv));1434 1435 assert(Z_TYPE_PP(zv) == IS_ARRAY); 1435 1436 assert(Z_ARRVAL_PP(zv) == ht); 1437 fprintf(stderr, "refcount=%d\n", Z_REFCOUNT(*DST(`value'))); 1438 fprintf(stderr, "refcount=%d\n", Z_REFCOUNT(**zv)); 1436 1439 } 1437 1440 ') … … 1483 1486 1484 1487 PROCESS(zend_bool, have_references) 1485 DONE(value)1486 1488 ') 1487 1489 dnl }}} -
trunk/tests/xcache_var_object.phpt
r1569 r1576 1 1 --TEST-- 2 xcache_set/get test for object 2 xcache_set/get test for object PHP 5.2+ 3 3 --SKIPIF-- 4 4 <?php 5 5 require("skipif.inc"); 6 if (!version_compare(phpversion(), '5.2', '>=')) { 7 echo 'skip for PHP 5.2+ only'; 8 } 6 9 ?> 7 10 --INI-- -
trunk/tests/xcache_var_reference.phpt
r1572 r1576 1 1 --TEST-- 2 xcache_set/get test for reference 2 xcache_set/get test for reference for PHP 5.2+ 3 3 --SKIPIF-- 4 4 <?php 5 5 require("skipif.inc"); 6 if (!version_compare(phpversion(), '5.2', '>=')) { 7 echo 'skip for PHP 5.2+ only'; 8 } 6 9 ?> 7 10 --INI--
Note: See TracChangeset
for help on using the changeset viewer.