File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -229,6 +229,7 @@ ZEND_API void ZEND_FASTCALL zend_observer_fcall_end(
229
229
zend_execute_data * ex = execute_data -> prev_execute_data ;
230
230
while (ex && (!ex -> func || ex -> func -> type == ZEND_INTERNAL_FUNCTION
231
231
|| !ZEND_OBSERVABLE_FN (ex -> func -> common .fn_flags )
232
+ || !& RUN_TIME_CACHE (& ex -> func -> op_array )
232
233
|| !ZEND_OBSERVER_DATA (& ex -> func -> op_array )
233
234
|| ZEND_OBSERVER_DATA (& ex -> func -> op_array ) == ZEND_OBSERVER_NOT_OBSERVED )) {
234
235
ex = ex -> prev_execute_data ;
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug #81430 (Attribute instantiation frame has no run time cache)
3
+ --INI--
4
+ memory_limit=20M
5
+ zend_test.observer.enabled=1
6
+ zend_test.observer.observe_all=1
7
+ --FILE--
8
+ <?php
9
+
10
+ #[\Attribute]
11
+ class A {
12
+ public function __construct () {}
13
+ }
14
+
15
+ #[A]
16
+ function B () {}
17
+
18
+ $ r = new \ReflectionFunction ("B " );
19
+ call_user_func ([$ r ->getAttributes (A::class)[0 ], 'newInstance ' ]);
20
+ --EXPECTF --
21
+ <!-- init '%s ' -->
22
+ <file '%s ' >
23
+ <!-- init A::__construct () -->
24
+ <A::__construct>
25
+ </A::__construct>
26
+ </file '%s ' >
You can’t perform that action at this time.
0 commit comments