1
0
Fork 0

possible fix for #324

git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1381 c26eb9a1-5813-0410-bd6c-c2e55f420ca7
This commit is contained in:
Xuefer 2013-09-22 15:04:51 +00:00
parent 9e88b0280f
commit 2492dcb0ad
2 changed files with 8 additions and 3 deletions

View File

@ -734,7 +734,8 @@ DEF_STRUCT_P_FUNC(`zend_op_array', , `dnl {{{
#endif
/* really fast shallow copy */
memcpy(dst, src, sizeof(src[0]));
DST(`refcount[0]') = 1000;
DST(`refcount') = &XG(op_array_dummy_refcount_holder);
DST(`refcount[0]') = -1;
#ifdef ZEND_ACC_ALIAS
if ((processor->active_class_entry_src && (processor->active_class_entry_src->ce_flags & ZEND_ACC_TRAIT))) {
PROC_ZSTRING(, function_name)
@ -877,8 +878,11 @@ DEF_STRUCT_P_FUNC(`zend_op_array', , `dnl {{{
#endif
STRUCT_P(zend_uint, refcount)
UNFIXPOINTER(zend_uint, refcount)
IFSTORE(`DST(`refcount[0]') = 1;')
IFSTORE(`
UNFIXPOINTER(zend_uint, refcount)
DST(`refcount[0]') = 1;
FIXPOINTER(zend_uint, refcount)
')
#ifdef ZEND_ENGINE_2_4
dnl used when copying opcodes

View File

@ -43,6 +43,7 @@ ZEND_BEGIN_MODULE_GLOBALS(xcache)
zend_bool internal_table_copied;
void *sandbox;
zend_uint op_array_dummy_refcount_holder;
ZEND_END_MODULE_GLOBALS(xcache)
ZEND_EXTERN_MODULE_GLOBALS(xcache)