summaryrefslogtreecommitdiff
path: root/Zend/zend_execute_API.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2010-04-01 19:36:56 +0000
committerStanislav Malyshev <stas@php.net>2010-04-01 19:36:56 +0000
commitcf4ea31bff28d0a3683a1dceb81047111ab32ca8 (patch)
treed6c2689a3d93de26880defdb6d550d4a79c2a8e7 /Zend/zend_execute_API.c
parent49b8860acebe5c93d577004a447d0bf68ec74964 (diff)
downloadphp-git-cf4ea31bff28d0a3683a1dceb81047111ab32ca8.tar.gz
fix #51394 - try harder to find script lineno when exception happens
Diffstat (limited to 'Zend/zend_execute_API.c')
-rw-r--r--Zend/zend_execute_API.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 55d0ab72ca..1865b6cbf9 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -411,6 +411,10 @@ ZEND_API char *zend_get_executed_filename(TSRMLS_D) /* {{{ */
ZEND_API uint zend_get_executed_lineno(TSRMLS_D) /* {{{ */
{
+ if(EG(exception) && EG(opline_ptr) && active_opline->opcode == ZEND_HANDLE_EXCEPTION &&
+ active_opline->lineno == 0 && EG(opline_before_exception)) {
+ return EG(opline_before_exception)->lineno;
+ }
if (EG(opline_ptr)) {
return active_opline->lineno;
} else {