@@ -67,8 +67,8 @@ typedef struct {
6767ZEND_TLS HashTable zai_hook_memory ;
6868// execute_data is 16 byte aligned (except when it isn't, but it doesn't matter as zend_execute_data is big enough
6969// our goal is to reduce conflicts
70- static inline void zai_hook_memory_table_insert (zend_execute_data * index , zai_interceptor_frame_memory * inserting ) {
71- zend_hash_index_update_mem (& zai_hook_memory , ((zend_ulong )index ) >> 4 , inserting , sizeof (* inserting ));
70+ static inline zai_interceptor_frame_memory * zai_hook_memory_table_insert (zend_execute_data * index , zai_interceptor_frame_memory * inserting ) {
71+ return zend_hash_index_update_mem (& zai_hook_memory , ((zend_ulong )index ) >> 4 , inserting , sizeof (* inserting ));
7272}
7373
7474static inline void * zai_hook_memory_table_insert_generator (zend_execute_data * index , zai_interceptor_generator_frame_memory * inserting ) {
@@ -497,7 +497,7 @@ static inline void zai_interceptor_execute_internal_impl(zend_execute_data *exec
497497 }
498498 frame_memory .execute_data = execute_data ;
499499 frame_memory .implicit = false;
500- zai_hook_memory_table_insert (execute_data , & frame_memory );
500+ zai_interceptor_frame_memory * stored_frame_memory = zai_hook_memory_table_insert (execute_data , & frame_memory );
501501
502502 // we do not use try / catch here as to preserve order of hooks, LIFO style, in bailout handler
503503 if (prev ) {
@@ -506,7 +506,7 @@ static inline void zai_interceptor_execute_internal_impl(zend_execute_data *exec
506506 func -> internal_function .handler (execute_data , return_value );
507507 }
508508
509- zai_hook_finish (execute_data , return_value , & frame_memory . hook_data );
509+ zai_hook_finish (execute_data , return_value , & stored_frame_memory -> hook_data );
510510 zai_hook_memory_table_del (execute_data );
511511 } else {
512512 skip : ;
0 commit comments