Changeset 1492 for trunk


Ignore:
Timestamp:
2014-05-28T18:24:54+02:00 (8 weeks ago)
Author:
moo
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.