Changeset 1492 in svn for trunk/processor/main.m4


Ignore:
Timestamp:
2014-05-28T16:24:54Z (15 months ago)
Author:
Xuefer
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.