summaryrefslogtreecommitdiff
path: root/src/sp_execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp_execute.c')
-rw-r--r--src/sp_execute.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/sp_execute.c b/src/sp_execute.c
index de83a2a..7d078b0 100644
--- a/src/sp_execute.c
+++ b/src/sp_execute.c
@@ -274,17 +274,23 @@ int hook_execute(void) {
274 TSRMLS_FETCH(); 274 TSRMLS_FETCH();
275 275
276 if (NULL == orig_execute_ex && NULL == orig_zend_stream_open) { 276 if (NULL == orig_execute_ex && NULL == orig_zend_stream_open) {
277 /* zend_execute_ex is used for "user" function calls */ 277 if (zend_execute_ex != sp_execute_ex) {
278 orig_execute_ex = zend_execute_ex; 278 /* zend_execute_ex is used for "user" function calls */
279 zend_execute_ex = sp_execute_ex; 279 orig_execute_ex = zend_execute_ex;
280 zend_execute_ex = sp_execute_ex;
281 }
280 282
281 /* zend_execute_internal is used for "builtin" functions calls */ 283 if (zend_execute_internal != sp_zend_execute_internal) {
282 orig_zend_execute_internal = zend_execute_internal; 284 /* zend_execute_internal is used for "builtin" functions calls */
283 zend_execute_internal = sp_zend_execute_internal; 285 orig_zend_execute_internal = zend_execute_internal;
286 zend_execute_internal = sp_zend_execute_internal;
287 }
284 288
285 /* zend_stream_open_function is used for include-related stuff */ 289 if (zend_stream_open_function != sp_stream_open) {
286 orig_zend_stream_open = zend_stream_open_function; 290 /* zend_stream_open_function is used for include-related stuff */
287 zend_stream_open_function = sp_stream_open; 291 orig_zend_stream_open = zend_stream_open_function;
292 zend_stream_open_function = sp_stream_open;
293 }
288 } 294 }
289 295
290 return SUCCESS; 296 return SUCCESS;