mirror of
https://github.com/php/php-src.git
synced 2024-12-24 17:30:48 +08:00
5e8133f453
commit2399fc84c5
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 12:38:08 2015 +0300 Removed useless assignment commit796b633817
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 12:35:31 2015 +0300 Fixed execution with overriden zend_execute_ex() commit4a9fb125aa
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 02:02:58 2015 +0300 Fixed executor without global registers commitd456c30e00
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 01:30:35 2015 +0300 Restored original behavior for tests/classes/__call_004.phpt commit479646d37f
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 00:32:17 2015 +0300 Fixed test. We don't keep stack frame for fake function anymore. commit9ae61e33e2
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 00:30:09 2015 +0300 Use ZEND_ACC_CALL_VIA_TRAMPOLINE instead of ZEND_ACC_CALL_VIA_HANDLER. Keep ZEND_ACC_CALL_VIA_HANDLER for compatibility. commit0a8403a2a0
Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Apr 10 00:05:43 2015 +0300 Rename PROXY_CALL into CALL_TRAMPLINE. Generalize API to allow reuse EG(trampline) for other purposes. commit4ea0525c10
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 23:22:25 2015 +0300 Reuse EG(proxy_call_op) for all proxy. Move proxy related functions from zend_objects_API to zend_object_handlers. commit529bf737ca
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 21:42:23 2015 +0300 Accurate use of proxy_call commit5d62837d5b
Merge:83e749f
690843f
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 19:40:00 2015 +0300 Merge branch 'master' into opcodefy-call * master: Fixed GOTO executor Fixed typo Changed ArrayIterator implementation using zend_hash_iterator_... API. Allowed modification of itterated ArrayObject using the same behavior as proposed in `Fix "foreach" behavior`. Removed "Array was modified outside object and internal position is no longer valid" hack. commit83e749ff3b
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 19:39:10 2015 +0300 Improved ZEND_PROXY_CALL commit0c829afc53
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 15:14:49 2015 +0300 Reverted white-space changes commitdf65144488
Merge:5fd2f97
97756d9
Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Apr 9 14:37:07 2015 +0300 Merge branch 'opcodefy-call' of github.com:laruence/php-src into opcodefy-call * 'opcodefy-call' of github.com:laruence/php-src: Ready for PR Fixed static call Improve performance by using prealloated op_arrray Respect called_scope Support internal magical __call/__callStatic opcode-fy magical __callStatic Opcode-fy magical __call commit97756d9190
Author: Xinchen Hui <laruence@gmail.com> Date: Thu Apr 9 19:07:59 2015 +0800 Ready for PR commit74f9930846
Author: Xinchen Hui <laruence@gmail.com> Date: Thu Apr 9 19:03:00 2015 +0800 Fixed static call commitec1d9eb592
Author: Xinchen Hui <laruence@gmail.com> Date: Thu Apr 9 18:23:17 2015 +0800 Improve performance by using prealloated op_arrray commitdf7fbbf949
Author: Xinchen Hui <laruence@gmail.com> Date: Thu Apr 9 15:10:02 2015 +0800 Respect called_scope commit769d1d59fb
Author: Xinchen Hui <laruence@gmail.com> Date: Thu Apr 9 12:19:23 2015 +0800 Support internal magical __call/__callStatic commita980fedd5b
Author: Xinchen Hui <laruence@gmail.com> Date: Wed Apr 8 18:35:41 2015 +0800 opcode-fy magical __callStatic commit73855f7d53
Author: Xinchen Hui <laruence@gmail.com> Date: Wed Apr 8 14:21:55 2015 +0800 Opcode-fy magical __call
105 lines
1.8 KiB
PHP
105 lines
1.8 KiB
PHP
--TEST--
|
|
Bug #50383 (Exceptions thrown in __call / __callStatic do not include file and line in trace)
|
|
--FILE--
|
|
<?php
|
|
|
|
class myClass {
|
|
public static function __callStatic($method, $args) {
|
|
throw new Exception("Missing static method '$method'\n");
|
|
}
|
|
public function __call($method, $args) {
|
|
throw new Exception("Missing method '$method'\n");
|
|
}
|
|
}
|
|
|
|
function thrower() {
|
|
myClass::ThrowException();
|
|
}
|
|
function thrower2() {
|
|
$x = new myClass;
|
|
$x->foo();
|
|
}
|
|
|
|
try {
|
|
thrower();
|
|
} catch(Exception $e) {
|
|
print $e->getMessage();
|
|
print_r($e->getTrace());
|
|
}
|
|
|
|
try {
|
|
thrower2();
|
|
} catch (Exception $e) {
|
|
print $e->getMessage();
|
|
print_r($e->getTrace());
|
|
}
|
|
|
|
?>
|
|
--EXPECTF--
|
|
Missing static method 'ThrowException'
|
|
Array
|
|
(
|
|
[0] => Array
|
|
(
|
|
[file] => %s
|
|
[line] => 13
|
|
[function] => __callStatic
|
|
[class] => myClass
|
|
[type] => ::
|
|
[args] => Array
|
|
(
|
|
[0] => ThrowException
|
|
[1] => Array
|
|
(
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
[1] => Array
|
|
(
|
|
[file] => %s
|
|
[line] => 21
|
|
[function] => thrower
|
|
[args] => Array
|
|
(
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
Missing method 'foo'
|
|
Array
|
|
(
|
|
[0] => Array
|
|
(
|
|
[file] => %s
|
|
[line] => 17
|
|
[function] => __call
|
|
[class] => myClass
|
|
[type] => ->
|
|
[args] => Array
|
|
(
|
|
[0] => foo
|
|
[1] => Array
|
|
(
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
[1] => Array
|
|
(
|
|
[file] => %s
|
|
[line] => 28
|
|
[function] => thrower2
|
|
[args] => Array
|
|
(
|
|
)
|
|
|
|
)
|
|
|
|
)
|