Changeset 1287 in svn


Ignore:
Timestamp:
2013-07-10T08:32:58Z (2 years ago)
Author:
Xuefer
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.