Ignore:
Timestamp:
2011-04-18T06:29:25+02:00 (4 years ago)
Author:
moo
Message:

merge changes from trunk

Location:
branches/1.3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/1.3

  • branches/1.3/disassembler.c

    r726 r766  
    3737    add_assoc_zval_ex(dst, ZEND_STRS("op_array"), zv); 
    3838 
     39    buf = emalloc(bufsize); 
     40 
    3941    ALLOC_INIT_ZVAL(list); 
    4042    array_init(list); 
    4143    b = TG(internal_function_tail) ? TG(internal_function_tail)->pListNext : TG(function_table).pListHead; 
    4244    for (; b; b = b->pListNext) { 
     45        int keysize, keyLength; 
     46 
    4347        ALLOC_INIT_ZVAL(zv); 
    4448        array_init(zv); 
    4549        xc_dasm_zend_function(zv, b->pData TSRMLS_CC); 
    46  
    47         add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength, zv); 
    48     } 
    49     add_assoc_zval_ex(dst, ZEND_STRS("function_table"), list); 
    50      
    51     buf = emalloc(bufsize); 
    52     ALLOC_INIT_ZVAL(list); 
    53     array_init(list); 
    54     b = TG(internal_class_tail) ? TG(internal_class_tail)->pListNext : TG(class_table).pListHead; 
    55     for (; b; b = b->pListNext) { 
    56         int keysize, keyLength; 
    57  
    58         ALLOC_INIT_ZVAL(zv); 
    59         array_init(zv); 
    60         xc_dasm_zend_class_entry(zv, CestToCePtr(*(xc_cest_t *)b->pData) TSRMLS_CC); 
    6150 
    6251        keysize = BUCKET_KEY_SIZE(b) + 2; 
     
    8271            } 
    8372        } 
     73 
     74        add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(buf), keyLength, zv); 
     75    } 
     76    add_assoc_zval_ex(dst, ZEND_STRS("function_table"), list); 
     77     
     78    ALLOC_INIT_ZVAL(list); 
     79    array_init(list); 
     80    b = TG(internal_class_tail) ? TG(internal_class_tail)->pListNext : TG(class_table).pListHead; 
     81    for (; b; b = b->pListNext) { 
     82        int keysize, keyLength; 
     83 
     84        ALLOC_INIT_ZVAL(zv); 
     85        array_init(zv); 
     86        xc_dasm_zend_class_entry(zv, CestToCePtr(*(xc_cest_t *)b->pData) TSRMLS_CC); 
     87 
     88        keysize = BUCKET_KEY_SIZE(b) + 2; 
     89        if (keysize > bufsize) { 
     90            do { 
     91                bufsize *= 2; 
     92            } while (keysize > bufsize); 
     93            buf = erealloc(buf, bufsize); 
     94        } 
     95        memcpy(buf, BUCKET_KEY_S(b), keysize); 
     96        buf[keysize - 2] = buf[keysize - 1] = ""[0]; 
     97        keyLength = b->nKeyLength; 
     98#ifdef IS_UNICODE 
     99        if (BUCKET_KEY_TYPE(b) == IS_UNICODE) { 
     100            if (buf[0] == ""[0] && buf[1] == ""[0]) { 
     101                keyLength ++; 
     102            } 
     103        } else 
     104#endif 
     105        { 
     106            if (buf[0] == ""[0]) { 
     107                keyLength ++; 
     108            } 
     109        } 
    84110        add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(buf), keyLength, zv); 
    85111    } 
Note: See TracChangeset for help on using the changeset viewer.