Changeset 1572 in svn for trunk/processor/processor.m4


Ignore:
Timestamp:
2014-11-12T07:03:46Z (4 years ago)
Author:
Xuefer
Message:

support for reference value

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/processor.m4

    r1568 r1572  
    284284                        IFCOPY(`
    285285                            DST()[0] = *ppzv;
     286                            IFSTORE(`Z_ADDREF(**DST());')
    286287                            /* *DST() is updated */
    287                             dnl fprintf(stderr, "*DST() is set to %p, PROCESSOR_TYPE is_shm %d\n", DST()[0], xc_is_shm(DST()[0]));
     288                            dnl fprintf(stderr, "*DST() is set to %p, PROCESSOR_TYPE is_shm %d\n", (void *) DST()[0], xc_is_shm(DST()[0]));
    288289                        ')
    289290                        IFCALCSTORE(`processor->have_references = 1;')
     
    306307                    ')
    307308                    if (zend_hash_add(&processor->zvalptrs, (char *) &SRC()[0], sizeof(SRC()[0]), (void *) &pzv, sizeof(pzv), NULL) == SUCCESS) { /* first add, go on */
    308                         dnl fprintf(stderr, "mark[%p] = %p\n", SRC()[0], pzv);
     309                        IFSTORE(`Z_SET_REFCOUNT(**DST(), 1);')
     310                        dnl IFSTORE(`fprintf(stderr, "mark[%p] = %p\n", (void *) SRC()[0], (void *) pzv);')
    309311                    }
    310312                    else {
     
    14171419    IFDPRINT(`INDENT()`'fprintf(stderr, "zval:value");')
    14181420    STRUCT_P_EX(zval_ptr, DST(`value'), SRC(`value'), `value', `', `&')
     1421#if 0
     1422    IFSTORE(`
     1423    {
     1424        HashTable *ht;
     1425        zval **zv;
     1426
     1427        assert(Z_TYPE_P(SRC(`value')) == IS_ARRAY);
     1428        ht = Z_ARRVAL_P(SRC(`value'));
     1429        assert(ht->nNumOfElements == 1);
     1430        fprintf(stderr, "key %s\n", ht->pListHead->arKey);
     1431
     1432        zv = (zval **) ht->pListHead->pData;
     1433        fprintf(stderr, "%d\n", Z_TYPE_PP(zv));
     1434        assert(Z_TYPE_PP(zv) == IS_ARRAY);
     1435        assert(Z_ARRVAL_PP(zv) == ht);
     1436    }
     1437    ')
     1438#endif
    14191439
    14201440#ifdef ZEND_ENGINE_2
Note: See TracChangeset for help on using the changeset viewer.