Ignore:
Timestamp:
2012-03-25T09:01:16+02:00 (3 years ago)
Author:
moo
Message:

PHP_5_4: handle exclude_from_classes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/struct.m4

    r835 r843  
    128128    DBG(`$0($*)') 
    129129    pushdefFUNC_NAME(`$1', `$5') 
    130     ifdef(`DEFINED_'ifelse(`$5', `', `$1', `$5'), `', `m4_errprint(`Unknown struct "'ifelse(`$5', `', `$1', `$5')`"')') 
     130    ifdef(`DEFINED_'ifelse(`$5', `', `$1', `$5'), `', `m4_errprint(`AUTOCHECK ERROR: Unknown struct "'ifelse(`$5', `', `$1', `$5')`"')define(`EXIT_PENDING', 1)') 
    131131    assert(sizeof($1) == sizeof(($6 $3)[0])); 
    132132    ifelse(`$6', `', `ALLOC(`$2', `$1')') 
     
    156156define(`STRUCT_P', ` 
    157157    DBG(`$0($*)') 
    158     if (src->$2) { 
     158    if (SRC(`$2')) { 
    159159        IFDPRINT(`INDENT()`'fprintf(stderr, "$1:$2 ");') 
    160         STRUCT_P_EX(`$1', `dst->$2', `src->$2', `$2', `$3') 
     160        STRUCT_P_EX(`$1', `dst->$2', `SRC(`$2')', `$2', `$3') 
    161161    } 
    162162    else { 
     
    170170define(`STRUCT', ` 
    171171    DBG(`$0($*)') 
    172     assert(sizeof($1) == sizeof(src->$2)); 
     172    assert(sizeof($1) == sizeof(SRC(`$2'))); 
    173173    IFDPRINT(`INDENT()`'fprintf(stderr, "$1:$2 ");') 
    174     STRUCT_P_EX(`$1', `dst->$2', `src->$2', `$2', `$3', `&') 
     174    STRUCT_P_EX(`$1', `dst->$2', `SRC(`$2')', `$2', `$3', `&') 
    175175    DONE(`$2') 
    176176') 
     
    178178dnl {{{ STRUCT_ARRAY(1:count, 2:type, 3:elm, 4:name=type, 5:loopcounter) 
    179179define(`STRUCT_ARRAY', ` 
    180     if (src->$3) { 
     180    if (SRC(`$3')) { 
    181181        ifelse( 
    182182            `$5', `', `int i; pushdef(`LOOPCOUNTER', `i')', 
     
    188188            array_init(arr); 
    189189 
    190             LOOPCOUNTER = 0; 
    191             while ( 
    192             ifelse(`$1', `', `src->$3[LOOPCOUNTER]', 
    193             `', `', `LOOPCOUNTER < src->$1') 
    194             ) { 
     190            for (LOOPCOUNTER = 0; 
     191                    ifelse(`$1', `', `SRC(`$3[LOOPCOUNTER]')', 
     192                    `', `', `LOOPCOUNTER < SRC(`$1')'); 
     193                    ++LOOPCOUNTER) { 
    195194                zval *zv; 
    196195 
    197196                ALLOC_INIT_ZVAL(zv); 
    198197                array_init(zv); 
    199                 FUNC_NAME (zv, &(src->$3[LOOPCOUNTER]) TSRMLS_CC); 
     198                FUNC_NAME (zv, &(SRC(`$3[LOOPCOUNTER]')) TSRMLS_CC); 
    200199                add_next_index_zval(arr, zv); 
    201  
    202                 ++LOOPCOUNTER; 
    203200            } 
    204201            add_assoc_zval_ex(dst, ZEND_STRS("$3"), arr); 
     
    206203            dnl find count with NULL 
    207204            ifelse(`$1', `', ` 
    208                 int count; 
    209                 for (count = 0; src->$3[count]; ++count) { 
    210                     /* just count */ 
     205                size_t count = 0; 
     206                while (SRC(`$3[count]')) { 
     207                    ++count; 
    211208                } 
    212209                ++count; 
    213                 pushdef(`STRUCT_COUNT', `count') 
     210                pushdef(`ARRAY_ELEMENT_COUNT', `count') 
    214211            ', 
    215             `', `', `pushdef(`STRUCT_COUNT', `src->$1')') 
    216             ALLOC(`dst->$3', `$2', `STRUCT_COUNT') 
     212            `', `', `pushdef(`ARRAY_ELEMENT_COUNT', `SRC(`$1')')') 
     213            ALLOC(`dst->$3', `$2', `ARRAY_ELEMENT_COUNT') 
     214            popdef(`ARRAY_ELEMENT_COUNT') 
     215 
    217216            ifdef(`AFTER_ALLOC', AFTER_ALLOC) 
    218217 
    219             LOOPCOUNTER = 0; 
    220             while ( 
    221             ifelse(`$1', `', `src->$3[LOOPCOUNTER]', 
    222             `', `', `LOOPCOUNTER < src->$1') 
    223             ) { 
     218            for (LOOPCOUNTER = 0; 
     219                    ifelse(`$1', `', `SRC(`$3[LOOPCOUNTER]')', 
     220                    `', `', `LOOPCOUNTER < SRC(`$1')'); 
     221                    ++LOOPCOUNTER) { 
    224222                DISABLECHECK(` 
    225223                    STRUCT(`$2', `$3[LOOPCOUNTER]', `$4') 
    226224                ') 
    227  
    228                 ++LOOPCOUNTER; 
    229225            } 
    230             dnl tailing NULL 
    231             ifelse(`$1', `', `IFCOPY(`dst->$3[LOOPCOUNTER] = NULL;')') 
    232             popdef(`STRUCT_COUNT') 
     226            dnl the end marker 
     227            ifelse(`$1', `', `IFCOPY(`DST(`$3[LOOPCOUNTER]') = NULL;')') 
    233228        ')dnl IFDASM 
    234229        DONE(`$3') 
Note: See TracChangeset for help on using the changeset viewer.