Ignore:
Timestamp:
2014-05-28T18:24:54+02:00 (6 months ago)
Author:
moo
Message:

disassembler: fix support for assoc/next

File:
1 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); 
Note: See TracChangeset for help on using the changeset viewer.