diff options
Diffstat (limited to 'src/sp_execute.c')
| -rw-r--r-- | src/sp_execute.c | 24 |
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; |
