com php-src: Fixed PHP-5.2 ZTS compatibility: ext/opcache/Optim izer/block_pass.c ext/opcache/Optimizer/pass1_5.c ext/opcache/ZendAccelerator.c
ext/opcache/zend_acceler ator_util_funcs.c
| From: | Dmitry Stogov | Date: | Mon, 25 Mar 2013 08:21:58 +0000 |
| Subject: | com php-src: Fixed PHP-5.2 ZTS compatibility: ext/opcache/Optim izer/block_pass.c ext/opcache/Optimizer/pass1_5.c ext/opcache/ZendAccelerator.c ext/opcache/zend_acceler ator_util_funcs.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-71736@lists.php.net to get a copy of this message | ||
Commit: 987dee9ca1be517f4be02d9c8f721d569596dc5a
Author: Dmitry Stogov <dmitry@zend.com> Mon, 25 Mar 2013 12:21:58 +0400
Parents: a3316ffe6a05d86c9b49d37c5ac9ed101c606d86
Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=987dee9ca1be517f4be02d9c8f721d569596dc5a
Log:
Fixed PHP-5.2 ZTS compatibility
Changed paths:
M ext/opcache/Optimizer/block_pass.c
M ext/opcache/Optimizer/pass1_5.c
M ext/opcache/ZendAccelerator.c
M ext/opcache/zend_accelerator_util_funcs.c
Diff:
diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c
index d4299c8..7fd986c 100644
--- a/ext/opcache/Optimizer/block_pass.c
+++ b/ext/opcache/Optimizer/block_pass.c
@@ -972,7 +972,11 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array
*op_array,
zval result;
if (unary_op) {
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ unary_op(&result, &ZEND_OP1_LITERAL(opline));
+#else
unary_op(&result, &ZEND_OP1_LITERAL(opline) TSRMLS_CC);
+#endif
literal_dtor(&ZEND_OP1_LITERAL(opline));
} else {
/* BOOL */
diff --git a/ext/opcache/Optimizer/pass1_5.c b/ext/opcache/Optimizer/pass1_5.c
index 8938e14..dc9e731 100644
--- a/ext/opcache/Optimizer/pass1_5.c
+++ b/ext/opcache/Optimizer/pass1_5.c
@@ -203,7 +203,11 @@ if (ZEND_OPTIMIZER_PASS_1 & OPTIMIZATION_LEVEL) {
er = EG(error_reporting);
EG(error_reporting) = 0;
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ if (unary_op(&result, &ZEND_OP1_LITERAL(opline)) != SUCCESS) {
+#else
if (unary_op(&result, &ZEND_OP1_LITERAL(opline) TSRMLS_CC) != SUCCESS) {
+#endif
EG(error_reporting) = er;
break;
}
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 64c5aa8..e634c13 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -1204,10 +1204,18 @@ static zend_persistent_script *compile_and_cache_file(zend_file_handle
*file_han
} else {
*op_array_p = NULL;
if (type == ZEND_REQUIRE) {
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
+#else
zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
+#endif
zend_bailout();
} else {
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+#else
zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
+#endif
}
return NULL;
}
@@ -1422,10 +1430,18 @@ static zend_op_array *persistent_compile_file(zend_file_handle *file_handle,
int
zend_stream_open(file_handle->filename, file_handle TSRMLS_CC) == FAILURE) {
#endif
if (type == ZEND_REQUIRE) {
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
+#else
zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
+#endif
zend_bailout();
} else {
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+#else
zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
+#endif
}
return NULL;
}
@@ -1542,7 +1558,11 @@ static zend_op_array *persistent_compile_file(zend_file_handle *file_handle,
int
zend_hash_quick_add(&EG(included_files), persistent_script->full_path,
persistent_script->full_path_len + 1, persistent_script->hash_value, &dummy, sizeof(void
*), NULL);
}
}
+#if ZEND_EXTENSION_API_NO < PHP_5_3_X_API_NO
+ zend_file_handle_dtor(file_handle);
+#else
zend_file_handle_dtor(file_handle TSRMLS_CC);
+#endif
from_shared_memory = 1;
}
diff --git a/ext/opcache/zend_accelerator_util_funcs.c b/ext/opcache/zend_accelerator_util_funcs.c
index 7d5028c..75b1561 100644
--- a/ext/opcache/zend_accelerator_util_funcs.c
+++ b/ext/opcache/zend_accelerator_util_funcs.c
@@ -857,7 +857,7 @@ static void zend_do_delayed_early_binding(zend_op_array *op_array, zend_uint ear
}
opline_num = op_array->opcodes[opline_num].result.u.opline_num;
}
- zend_restore_compiled_filename(orig_compiled_filename);
+ zend_restore_compiled_filename(orig_compiled_filename TSRMLS_CC);
CG(in_compilation) = orig_in_compilation;
}
}