disassembler: don't dump builtin functions
git-svn-id: svn://svn.lighttpd.net/xcache/trunk@709 c26eb9a1-5813-0410-bd6c-c2e55f420ca73.0
parent
3bdec5c380
commit
555d112674
|
@ -11,6 +11,7 @@ ChangeLog
|
|||
|
||||
1.3.2 2011-??-??
|
||||
========
|
||||
* disassembler: don't dump builtin functions
|
||||
* fix win32 build against win32 native gnu tools
|
||||
* compatibility fix: fix segv on shutdown when ionCube Loader is loaded
|
||||
* fixed undefined index for xcache.count=1 and xcache.var_size>1
|
||||
|
|
|
@ -5,10 +5,17 @@
|
|||
|
||||
#define return_value dst
|
||||
|
||||
/* sandbox {{{ */
|
||||
#undef TG
|
||||
#undef OG
|
||||
#define TG(x) (sandbox->tmp_##x)
|
||||
#define OG(x) (sandbox->orig_##x)
|
||||
/* }}} */
|
||||
|
||||
#ifndef HAVE_XCACHE_OPCODE_SPEC_DEF
|
||||
#error disassembler cannot be built without xcache/opcode_spec_def.h
|
||||
#endif
|
||||
static void xc_dasm(zval *dst, zend_op_array *op_array TSRMLS_DC) /* {{{ */
|
||||
static void xc_dasm(xc_sandbox_t *sandbox, zval *dst, zend_op_array *op_array TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
Bucket *b;
|
||||
zval *zv, *list;
|
||||
|
@ -32,13 +39,21 @@ static void xc_dasm(zval *dst, zend_op_array *op_array TSRMLS_DC) /* {{{ */
|
|||
|
||||
ALLOC_INIT_ZVAL(list);
|
||||
array_init(list);
|
||||
xc_dasm_HashTable_zend_function(list, CG(function_table) TSRMLS_CC);
|
||||
b = TG(internal_function_tail) ? TG(internal_function_tail)->pListNext : TG(function_table).pListHead;
|
||||
for (; b; b = b->pListNext) {
|
||||
ALLOC_INIT_ZVAL(zv);
|
||||
array_init(zv);
|
||||
xc_dasm_zend_function(zv, b->pData TSRMLS_CC);
|
||||
|
||||
add_u_assoc_zval_ex(list, BUCKET_KEY_TYPE(b), b->arKey, b->nKeyLength, zv);
|
||||
}
|
||||
add_assoc_zval_ex(dst, ZEND_STRS("function_table"), list);
|
||||
|
||||
buf = emalloc(bufsize);
|
||||
ALLOC_INIT_ZVAL(list);
|
||||
array_init(list);
|
||||
for (b = CG(class_table)->pListHead; b; b = b->pListNext) {
|
||||
b = TG(internal_class_tail) ? TG(internal_class_tail)->pListNext : TG(class_table).pListHead;
|
||||
for (; b; b = b->pListNext) {
|
||||
ALLOC_INIT_ZVAL(zv);
|
||||
array_init(zv);
|
||||
xc_dasm_zend_class_entry(zv, CestToCePtr(*(xc_cest_t *)b->pData) TSRMLS_CC);
|
||||
|
@ -96,7 +111,7 @@ void xc_dasm_string(zval *dst, zval *source TSRMLS_DC) /* {{{ */
|
|||
goto err_compile;
|
||||
}
|
||||
|
||||
xc_dasm(dst, op_array TSRMLS_CC);
|
||||
xc_dasm(&sandbox, dst, op_array TSRMLS_CC);
|
||||
|
||||
/* free */
|
||||
efree(eval_name);
|
||||
|
@ -141,7 +156,7 @@ void xc_dasm_file(zval *dst, const char *filename TSRMLS_DC) /* {{{ */
|
|||
goto err_compile;
|
||||
}
|
||||
|
||||
xc_dasm(dst, op_array TSRMLS_CC);
|
||||
xc_dasm(&sandbox, dst, op_array TSRMLS_CC);
|
||||
|
||||
/* free */
|
||||
#ifdef ZEND_ENGINE_2
|
||||
|
|
Loading…
Reference in New Issue