Changeset 1287 for trunk


Ignore:
Timestamp:
2013-07-10T10:32:58+02:00 (16 months ago)
Author:
moo
Message:

disassembler: fix nullable array handling

Location:
trunk/processor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/processor.m4

    r1281 r1287  
    195195DEF_STRUCT_P_FUNC(`zval_ptr_nullable', , `dnl {{{ 
    196196    if (src[0]) { 
     197        pushdef(`DASM_STRUCT_DIRECT') 
    197198        STRUCT_P_EX(zval_ptr, dst, src, `', `', ` ') 
     199        popdef(`DASM_STRUCT_DIRECT') 
    198200    } 
    199201    else { 
  • trunk/processor/struct.m4

    r1112 r1287  
    133133    assert(sizeof($1) == sizeof(($6 $3)[0])); 
    134134    ifelse(`$6', `', `ALLOC(`$2', `$1')') 
     135ifdef(`DASM_STRUCT_DIRECT', `', ` 
    135136    IFDASM(`do { 
    136137        zval *zv; 
     
    138139        array_init(zv); 
    139140    ') 
     141') 
    140142    FUNC_NAME`'( 
    141143        IFDPRINT( `           $6 $3, indent') 
     
    143145        IFSTORE(  `processor, $6 $2, $6 $3') 
    144146        IFRESTORE(`processor, $6 $2, $6 $3') 
    145         IFDASM(   `dasm, zv, $6 $3') 
     147        IFDASM(   `dasm, ifdef(`DASM_STRUCT_DIRECT', `dst', `zv'), $6 $3') 
    146148        IFASM(    `$6 $2, $6 $3') 
    147149        TSRMLS_CC 
    148150    ); 
     151ifdef(`DASM_STRUCT_DIRECT', `', ` 
    149152    IFDASM(` 
    150153        add_assoc_zval_ex(dst, ZEND_STRS("$4"), zv); 
    151154    } while (0); 
    152155    ') 
     156') 
    153157    popdef(`FUNC_NAME') 
    154158    ifelse(`$6', , `FIXPOINTER_EX(`$1', `$2')') 
Note: See TracChangeset for help on using the changeset viewer.