Changeset 248 for trunk


Ignore:
Timestamp:
2006-10-16T11:07:30+02:00 (9 years ago)
Author:
moo
Message:

fix var reference handling, fix #47, Assertion failed on shm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/processor.m4

    r233 r248  
    165165                            dst[0] = *ppzv;
    166166                            /* *dst is updated */
    167                             dnl fprintf(stderr, "*dst is set to %p\n", dst[0]);
     167                            dnl fprintf(stderr, "*dst is set to %p, KIND is_shm %d\n", dst[0], xc_is_shm(dst[0]));
    168168                        ')
    169169                        IFCALCSTORE(`processor->have_references = 1;')
     
    183183                    ', `
    184184                        zval_ptr pzv = dst[0];
     185                        FIXPOINTER_EX(zval, pzv)
    185186                    ')
    186187                    if (zend_hash_add(&processor->zvalptrs, (char *) &src[0], sizeof(src[0]), (void *) &pzv, sizeof(pzv), NULL) == SUCCESS) {
     
    198199            IFDPRINT(`INDENT()`'fprintf(stderr, "[%p]", src[0]);')
    199200            STRUCT_P_EX(zval, dst[0], src[0], `[0]', `', ` ')
     201            FIXPOINTER_EX(zval, dst[0])
    200202        } while (0);
    201203    ')
     
    735737dnl }}}
    736738DEF_STRUCT_P_FUNC(`xc_entry_data_var_t', , `dnl {{{
    737     IFSTORE(`
    738         if (processor->reference) {
    739             if (zend_hash_add(&processor->zvalptrs, (char *)&src->value, sizeof(&src->value), (void*)&src->value, sizeof(src->value), NULL) == SUCCESS) {
    740                 dnl fprintf(stderr, "mark[%p] = %p\n", &src->value, &dst->value);
    741             }
    742             else {
    743                 assert(0);
    744             }
    745         }
    746     ')
    747739    IFDPRINT(`INDENT()`'fprintf(stderr, "zval:value");')
    748740    STRUCT_P_EX(zval_ptr, dst->value, src->value, `value', `', `&')
Note: See TracChangeset for help on using the changeset viewer.