File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -44,13 +44,45 @@ static smart_str* get_class_and_action(smart_str *result TSRMLS_DC)
44
44
{
45
45
char * func ;
46
46
char * cls ;
47
+ int recall_depth = SEASLOG_G (recall_depth );
47
48
zend_execute_data * execute_data = EG (current_execute_data );
48
49
49
50
if (!execute_data || !(execute_data = execute_data -> prev_execute_data ))
50
51
{
51
52
return NULL ;
52
53
}
53
54
55
+ #if PHP_VERSION_ID >= 70000
56
+
57
+ while (recall_depth > 0 )
58
+ {
59
+ if (execute_data -> prev_execute_data != NULL && execute_data -> prev_execute_data -> func &&
60
+ ZEND_USER_CODE (execute_data -> prev_execute_data -> func -> common .type )
61
+ )
62
+ {
63
+ execute_data = execute_data -> prev_execute_data ;
64
+ }
65
+ else
66
+ {
67
+ break ;
68
+ }
69
+ recall_depth -- ;
70
+ }
71
+ #else
72
+ while (recall_depth > 0 )
73
+ {
74
+ if (execute_data -> prev_execute_data && execute_data -> prev_execute_data -> opline )
75
+ {
76
+ execute_data = execute_data -> prev_execute_data ;
77
+ }
78
+ else
79
+ {
80
+ break ;
81
+ }
82
+ recall_depth -- ;
83
+ }
84
+ #endif
85
+
54
86
func = seaslog_performance_get_function_name (execute_data TSRMLS_CC );
55
87
if (!func )
56
88
{
You can’t perform that action at this time.
0 commit comments