Ignore:
Timestamp:
2006-10-16T11:07:30+02:00 (8 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.