File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -46,6 +46,7 @@ PHP NEWS
46
46
- Opcache:
47
47
. Reset global pointers to prevent use-after-free in zend_jit_status().
48
48
(Florian Engelhardt)
49
+ . Fix issue with JIT restart and hooks. (nielsdos)
49
50
50
51
- OpenSSL:
51
52
. Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file()
Original file line number Diff line number Diff line change @@ -3836,6 +3836,24 @@ static void zend_jit_restart_preloaded_script(zend_persistent_script *script)
3836
3836
zend_jit_restart_preloaded_op_array (op_array );
3837
3837
}
3838
3838
} ZEND_HASH_FOREACH_END ();
3839
+
3840
+ if (ce -> num_hooked_props > 0 ) {
3841
+ zend_property_info * prop ;
3842
+
3843
+ ZEND_HASH_MAP_FOREACH_PTR (& ce -> properties_info , prop ) {
3844
+ if (prop -> hooks ) {
3845
+ for (uint32_t i = 0 ; i < ZEND_PROPERTY_HOOK_COUNT ; i ++ ) {
3846
+ if (prop -> hooks [i ]) {
3847
+ op_array = & prop -> hooks [i ]-> op_array ;
3848
+ ZEND_ASSERT (op_array -> type == ZEND_USER_FUNCTION );
3849
+ if (!(op_array -> fn_flags & ZEND_ACC_TRAIT_CLONE )) {
3850
+ zend_jit_restart_preloaded_op_array (op_array );
3851
+ }
3852
+ }
3853
+ }
3854
+ }
3855
+ } ZEND_HASH_FOREACH_END ();
3856
+ }
3839
3857
} ZEND_HASH_FOREACH_END ();
3840
3858
}
3841
3859
You can’t perform that action at this time.
0 commit comments