Changeset 714
- Timestamp:
- 2011-04-09T05:08:38+02:00 (2 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
Decompiler.class.php (modified) (2 diffs)
-
NEWS (modified) (1 diff)
-
const_string_opcodes_php6.x.h (modified) (3 diffs)
-
disassembler.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r709 r714 12 12 1.3.2 2011-??-?? 13 13 ======== 14 * disassembler: DECLARE_INHERITED_CLASS/DELAYED class not found 14 15 * disassembler: don't dump builtin functions 15 16 * fix win32 build against win32 native gnu tools -
trunk/Decompiler.class.php
r713 r714 1073 1073 // }}} 1074 1074 case XC_DECLARE_CLASS: 1075 case XC_DECLARE_INHERITED_CLASS: // {{{ 1075 case XC_DECLARE_INHERITED_CLASS: 1076 case XC_DECLARE_INHERITED_CLASS_DELAYED: // {{{ 1076 1077 $key = $op1['u.constant']; 1078 if (!isset($this->dc['class_table'][$key])) { 1079 echo 'class not found: ', $key, 'existing classes are:', "\n"; 1080 var_dump(array_keys($this->dc['class_table'])); 1081 exit; 1082 } 1077 1083 $class = &$this->dc['class_table'][$key]; 1078 if (!isset($class)) {1079 echo 'class not found: ' . $key;1080 exit;1081 }1082 1084 $class['name'] = $this->unquoteName($this->getOpVal($op2, $EX)); 1083 if ($opc == XC_DECLARE_INHERITED_CLASS ) {1085 if ($opc == XC_DECLARE_INHERITED_CLASS || $opc == XC_DECLARE_INHERITED_CLASS_DELAYED) { 1084 1086 $ext /= XC_SIZEOF_TEMP_VARIABLE; 1085 1087 $class['parent'] = $T[$ext]; … … 1867 1869 'XC_DECLARE_CLASS' => -1, 1868 1870 'XC_DECLARE_INHERITED_CLASS' => -1, 1871 'XC_DECLARE_INHERITED_CLASS_DELAYED' => -1, 1869 1872 'XC_ADD_INTERFACE' => -1, 1870 1873 'XC_POST_DEC_OBJ' => -1, -
trunk/NEWS
r703 r714 4 4 1.3.2 2011-??-?? 5 5 ======== 6 * memory leak on recompile 7 * disassembler fixes and updates for new PHP 6 8 * win32 build fix 7 9 * improve compatibility with ionCube Loader -
trunk/const_string_opcodes_php6.x.h
r567 r714 1 /* size = 15 4*/1 /* size = 157 */ 2 2 static const char *const xc_opcode_names[] = { 3 3 /* 0 */ "NOP", … … 112 112 /* 109 */ "FETCH_CLASS", 113 113 /* 110 */ "CLONE", 114 /* 111 */ " UNDEF",114 /* 111 */ "RETURN_BY_REF", 115 115 /* 112 */ "INIT_METHOD_CALL", 116 116 /* 113 */ "INIT_STATIC_METHOD_CALL", … … 152 152 /* 149 */ "HANDLE_EXCEPTION", 153 153 /* 150 */ "USER_OPCODE", 154 /* 151 */ "U _NORMALIZE",154 /* 151 */ "UNDEF", 155 155 /* 152 */ "JMP_SET", 156 /* 153 */ "DECLARE_LAMBDA_FUNCTION" 156 /* 153 */ "DECLARE_LAMBDA_FUNCTION", 157 /* 154 */ "ADD_TRAIT", 158 /* 155 */ "BIND_TRAITS", 159 /* 156 */ "SEPARATE" 157 160 }; -
trunk/disassembler.c
r709 r714 23 23 int bufsize = 2; 24 24 char *buf; 25 int keysize;26 25 27 26 xc_compile_result_init_cur(&cr, op_array TSRMLS_CC); … … 46 45 xc_dasm_zend_function(zv, b->pData TSRMLS_CC); 47 46 48 add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), b->arKey, b->nKeyLength, zv);47 add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength, zv); 49 48 } 50 49 add_assoc_zval_ex(dst, ZEND_STRS("function_table"), list); … … 55 54 b = TG(internal_class_tail) ? TG(internal_class_tail)->pListNext : TG(class_table).pListHead; 56 55 for (; b; b = b->pListNext) { 56 int keysize, keyLength; 57 57 58 ALLOC_INIT_ZVAL(zv); 58 59 array_init(zv); … … 68 69 memcpy(buf, BUCKET_KEY_S(b), keysize); 69 70 buf[keysize - 2] = buf[keysize - 1] = ""[0]; 70 key size= b->nKeyLength;71 keyLength = b->nKeyLength; 71 72 #ifdef IS_UNICODE 72 73 if (BUCKET_KEY_TYPE(b) == IS_UNICODE) { 73 74 if (buf[0] == ""[0] && buf[1] == ""[0]) { 74 key size++;75 keyLength ++; 75 76 } 76 77 } else … … 78 79 { 79 80 if (buf[0] == ""[0]) { 80 key size++;81 keyLength ++; 81 82 } 82 83 } 83 add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(buf), b->nKeyLength, zv);84 add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), ZSTR(buf), keyLength, zv); 84 85 } 85 86 efree(buf);
Note: See TracChangeset
for help on using the changeset viewer.

