Changeset 930
- Timestamp:
- 2012-06-26T15:53:44+02:00 (11 months ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
disassembler.c (modified) (4 diffs)
-
processor/hashtable.m4 (modified) (1 diff)
-
processor/head.m4 (modified) (1 diff)
-
processor/processor.m4 (modified) (9 diffs)
-
processor/struct.m4 (modified) (3 diffs)
-
utils.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/disassembler.c
r749 r930 23 23 int bufsize = 2; 24 24 char *buf; 25 xc_dasm_t dasm; 25 26 26 27 xc_compile_result_init_cur(&cr, op_array TSRMLS_CC); … … 34 35 ALLOC_INIT_ZVAL(zv); 35 36 array_init(zv); 36 xc_dasm_zend_op_array( zv, op_array TSRMLS_CC);37 xc_dasm_zend_op_array(&dasm, zv, op_array TSRMLS_CC); 37 38 add_assoc_zval_ex(dst, ZEND_STRS("op_array"), zv); 38 39 … … 47 48 ALLOC_INIT_ZVAL(zv); 48 49 array_init(zv); 49 xc_dasm_zend_function( zv, b->pData TSRMLS_CC);50 xc_dasm_zend_function(&dasm, zv, b->pData TSRMLS_CC); 50 51 51 52 keysize = BUCKET_KEY_SIZE(b) + 2; … … 84 85 ALLOC_INIT_ZVAL(zv); 85 86 array_init(zv); 86 xc_dasm_zend_class_entry( zv, CestToCePtr(*(xc_cest_t *)b->pData) TSRMLS_CC);87 xc_dasm_zend_class_entry(&dasm, zv, CestToCePtr(*(xc_cest_t *)b->pData) TSRMLS_CC); 87 88 88 89 keysize = BUCKET_KEY_SIZE(b) + 2; -
trunk/processor/hashtable.m4
r844 r930 37 37 ALLOC_INIT_ZVAL(zv); 38 38 array_init(zv); 39 FUNC_NAME ( zv, (($2*)b->pData) TSRMLS_CC);39 FUNC_NAME (dasm, zv, (($2*)b->pData) TSRMLS_CC); 40 40 keysize = BUCKET_KEY_SIZE(b) + 2; 41 41 if (keysize > bufsize) { -
trunk/processor/head.m4
r917 r930 107 107 }; 108 108 /* }}} */ 109 /* export: typedef struct _xc_dasm_t { const zend_op_array *active_op_array_src; } xc_dasm_t; :export {{{ */ 110 /* }}} */ 109 111 /* {{{ memsetptr */ 110 112 IFAUTOCHECK(`dnl -
trunk/processor/processor.m4
r917 r930 161 161 IFDASM(` 162 162 pushdefFUNC_NAME(`zval') 163 FUNC_NAME (d st, src[0] TSRMLS_CC);163 FUNC_NAME (dasm, dst, src[0] TSRMLS_CC); 164 164 popdef(`FUNC_NAME') 165 165 ', ` … … 321 321 IFDASM(` 322 322 pushdefFUNC_NAME(`zend_trait_alias') 323 FUNC_NAME (d st, src[0] TSRMLS_CC);323 FUNC_NAME (dasm, dst, src[0] TSRMLS_CC); 324 324 popdef(`FUNC_NAME') 325 325 ', ` … … 334 334 IFDASM(` 335 335 pushdefFUNC_NAME(`zend_trait_precedence') 336 FUNC_NAME (d st, src[0] TSRMLS_CC);336 FUNC_NAME (dasm, dst, src[0] TSRMLS_CC); 337 337 popdef(`FUNC_NAME') 338 338 ', ` … … 523 523 zval *zv; 524 524 ALLOC_INIT_ZVAL(zv); 525 *zv = src->$1.literal->constant;525 *zv = dasm->active_op_array_src->literals[src->$1.constant].constant; 526 526 zval_copy_ctor(zv); 527 527 add_assoc_zval_ex(dst, ZEND_STRS("$1.constant"), zv); … … 695 695 processor->active_op_array_src = src; 696 696 ') 697 IFDASM(` 698 dasm->active_op_array_src = src; 699 ') 697 700 { 698 701 IFRESTORE(` … … 737 740 pushdef(`UNION_znode_op_literal', ` 738 741 if (opline->$1_type == IS_CONST) { 739 opline->$1.constant = opline->$1.literal - src->literals; 740 opline->$1.literal = &dst->literals[opline->$1.constant]; 742 opline->$1.literal = &dst->literals[opline->$1.literal - src->literals]; 741 743 } 742 744 ') … … 751 753 #endif 752 754 case ZEND_JMP: 753 Z_OP(opline->op1).jmp_addr = dst->opcodes + (Z_OP(opline->op1).jmp_addr - src->opcodes);755 Z_OP(opline->op1).jmp_addr = &dst->opcodes[Z_OP(opline->op1).jmp_addr - src->opcodes]; 754 756 break; 755 757 … … 764 766 case ZEND_JMP_SET_VAR: 765 767 #endif 766 Z_OP(opline->op2).jmp_addr = dst->opcodes + (Z_OP(opline->op2).jmp_addr - src->opcodes);768 Z_OP(opline->op2).jmp_addr = &dst->opcodes[Z_OP(opline->op2).jmp_addr - src->opcodes]; 767 769 break; 768 770 … … 971 973 processor->active_op_array_src = NULL; 972 974 ') 975 IFDASM(` 976 dasm->active_op_array_src = NULL; 977 ') 973 978 ') 974 979 dnl }}} -
trunk/processor/struct.m4
r917 r930 12 12 IFSTORE( `xc_processor_t *processor, $1 *dst, const $1 * const src') 13 13 IFRESTORE(`xc_processor_t *processor, $1 *dst, const $1 * const src') 14 IFDASM( ` zval *dst, const $1 * const src')14 IFDASM( `xc_dasm_t *dasm, zval *dst, const $1 * const src') 15 15 IFASM( `$1 *dst, const $1 * const src') 16 16 TSRMLS_DC … … 137 137 IFSTORE( `processor, $6 $2, $6 $3') 138 138 IFRESTORE(`processor, $6 $2, $6 $3') 139 IFDASM( ` zv, $6 $3')139 IFDASM( `dasm, zv, $6 $3') 140 140 IFASM( `$6 $2, $6 $3') 141 141 TSRMLS_CC … … 192 192 ALLOC_INIT_ZVAL(zv); 193 193 array_init(zv); 194 FUNC_NAME ( zv, &(SRC(`$4[LOOPCOUNTER]')) TSRMLS_CC);194 FUNC_NAME (dasm, zv, &(SRC(`$4[LOOPCOUNTER]')) TSRMLS_CC); 195 195 add_next_index_zval(arr, zv); 196 196 } -
trunk/utils.c
r917 r930 240 240 end = opline + op_array->last; 241 241 while (opline < end) { 242 #ifndef ZEND_ENGINE_2_4 242 #ifdef ZEND_ENGINE_2_4 243 if (opline->op1_type == IS_CONST) { 244 opline->op1.literal = op_array->literals + opline->op1.constant; 245 } 246 if (opline->op2_type == IS_CONST) { 247 opline->op2.literal = op_array->literals + opline->op2.constant; 248 } 249 #else 243 250 if (Z_OP_TYPE(opline->op1) == IS_CONST) { 244 251 Z_SET_ISREF(Z_OP_CONSTANT(opline->op1));
Note: See TracChangeset
for help on using the changeset viewer.

