com php-src: op_array->filename and op_array->filen ame may be kept in opcache SHM: Zend/zend_bui ltin_functions.c
| From: | Dmitry Stogov | Date: | Wed, 16 Apr 2014 18:39:23 +0000 |
| Subject: | com php-src: op_array->filename and op_array->filen ame may be kept in opcache SHM: Zend/zend_bui ltin_functions.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-77369@lists.php.net to get a copy of this message | ||
Commit: 5bb493c40bb407203db2d4dd7b884310444a9d6c
Author: Dmitry Stogov <dmitry@zend.com> Wed, 16 Apr 2014 22:39:23 +0400
Parents: 2d62a121289c248f3aa9adc1336f13e68ca8c1c6
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=5bb493c40bb407203db2d4dd7b884310444a9d6c
Log:
op_array->filename and op_array->filename may be kept in opcache SHM
Changed paths:
M Zend/zend_builtin_functions.c
Diff:
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index aebcb74..d383910 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1084,7 +1084,8 @@ ZEND_FUNCTION(get_class_methods)
/* Do not display old-style inherited constructors */
if (zend_hash_get_current_key_ex(&ce->function_table, &key, &num_index, 0,
&pos) != HASH_KEY_IS_STRING) {
- ZVAL_STR(&method_name, STR_COPY(mptr->common.function_name));
+// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
+ ZVAL_STR(&method_name, STR_DUP(mptr->common.function_name, 0));
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &method_name);
} else if ((mptr->common.fn_flags & ZEND_ACC_CTOR) == 0 ||
mptr->common.scope == ce ||
@@ -1097,7 +1098,8 @@ ZEND_FUNCTION(get_class_methods)
ZVAL_STR(&method_name, STR_COPY(zend_find_alias_name(mptr->common.scope, key)));
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &method_name);
} else {
- ZVAL_STR(&method_name, STR_COPY(mptr->common.function_name));
+// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
+ ZVAL_STR(&method_name, STR_DUP(mptr->common.function_name, 0));
zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &method_name);
}
}
@@ -2240,7 +2242,8 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last,
int
break;
}
if (prev->op_array) {
- add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1,
STR_COPY(prev->op_array->filename));
+// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
+ add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1,
STR_DUP(prev->op_array->filename, 0));
add_assoc_long_ex(&stack_frame, "line", sizeof("line")-1,
prev->opline->lineno);
break;
}
@@ -2431,7 +2434,8 @@ ZEND_FUNCTION(get_extension_funcs)
array_init(return_value);
array = 1;
}
- add_next_index_str(return_value, STR_COPY(zif->common.function_name));
+// TODO: we have to duplicate it, becaise it may be stored in opcache SHM ???
+ add_next_index_str(return_value, STR_DUP(zif->common.function_name, 0));
}
zend_hash_move_forward_ex(CG(function_table), &iterator);
}