Changeset 1492 in svn for trunk


Ignore:
Timestamp:
2014-05-28T16:24:54Z (15 months ago)
Author:
Xuefer
Message:

disassembler: fix support for assoc/next

Location:
trunk/processor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/main.m4

    r1488 r1492  
    165165dnl }}}
    166166dnl {{{ SETNULL_EX
    167 define(`SETNULL_EX', `IFCOPY(`$1 = NULL;')')
     167define(`SETNULL_EX', `
     168    IFDASM(`
     169        ifelse(`$2', `[]', `
     170            add_next_index_null(DST());
     171        ', `
     172            add_assoc_null_ex(DST(), XCACHE_STRS("ifelse(`$2', `', `$1', `$2')"));
     173        ')
     174    ')
     175    IFCOPY(`$1 = NULL;')
     176')
    168177define(`SETNULL', `SETNULL_EX(`DST(`$1')')DONE(`$1')')
    169178dnl }}}
    170179dnl {{{ COPYNULL_EX(1:dst, 2:elm-name)
    171180define(`COPYNULL_EX', `
    172     IFDASM(`add_assoc_null_ex(DST(), XCACHE_STRS("$2"));')
     181    IFDASM(`
     182        ifelse(`$2', `[]', `
     183            add_next_index_null(DST());
     184        ', `
     185            add_assoc_null_ex(DST(), XCACHE_STRS("ifelse(`$2', `', `$1', `$2')"));
     186        ')
     187    ')
    173188    IFNOTMEMCPY(`IFCOPY(`$1 = NULL;')')
    174189    assert(patsubst($1, DST(), SRC()) == NULL);
  • trunk/processor/process.m4

    r1461 r1492  
    9494                pushdef(`dst', `arr')
    9595                pushdef(`SRC', `ifelse(`$4', `', `', `($2)')' defn(`SRC') `[LOOPCOUNTER]')
    96                 popdef(`add_assoc_bool_ex', `add_next_index_bool($1, $3)')
    97                 popdef(`add_assoc_string_ex', `add_next_index_string($1, $3)')
    98                 popdef(`add_assoc_long_ex', `add_next_index_long($1, $3)')
    99                 popdef(`add_assoc_zval_ex', `add_next_index_zval($1, $3)')
     96                pushdef(`add_assoc_bool_ex', `add_next_index_bool($1, $3)')
     97                pushdef(`add_assoc_string_ex', `add_next_index_string($1, $3)')
     98                pushdef(`add_assoc_long_ex', `add_next_index_long($1, $3)')
     99                pushdef(`add_assoc_zval_ex', `add_next_index_zval($1, $3)')
    100100                DISABLECHECK(`
    101101                    PROCESS(`$2', `$3')
Note: See TracChangeset for help on using the changeset viewer.