Skip to content

Commit e22633c

Browse files
committed
Merge branch 'PHP-7.4'
2 parents a56d1cf + d9dc942 commit e22633c

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

Zend/zend_gc.c

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,22 @@
8686
#define GC_GREY 0x200000u
8787
#define GC_PURPLE 0x300000u
8888

89+
/* Debug tracing */
90+
#if ZEND_GC_DEBUG > 1
91+
# define GC_TRACE(format, ...) fprintf(stderr, format "\n", ##__VA_ARGS__);
92+
# define GC_TRACE_REF(ref, format, ...) \
93+
do { \
94+
gc_trace_ref((zend_refcounted *) ref); \
95+
fprintf(stderr, format "\n", ##__VA_ARGS__); \
96+
} while (0)
97+
# define GC_TRACE_SET_COLOR(ref, color) \
98+
GC_TRACE_REF(ref, "->%s", gc_color_name(color))
99+
#else
100+
# define GC_TRACE_REF(ref, format, ...)
101+
# define GC_TRACE_SET_COLOR(ref, new_color)
102+
# define GC_TRACE(str)
103+
#endif
104+
89105
/* GC_INFO access */
90106
#define GC_REF_ADDRESS(ref) \
91107
(((GC_TYPE_INFO(ref)) & (GC_ADDRESS << GC_INFO_SHIFT)) >> GC_INFO_SHIFT)
@@ -103,16 +119,19 @@
103119
} while (0)
104120

105121
#define GC_REF_SET_COLOR(ref, c) do { \
122+
GC_TRACE_SET_COLOR(ref, c); \
106123
GC_TYPE_INFO(ref) = \
107124
(GC_TYPE_INFO(ref) & ~(GC_COLOR << GC_INFO_SHIFT)) | \
108125
((c) << GC_INFO_SHIFT); \
109126
} while (0)
110127

111128
#define GC_REF_SET_BLACK(ref) do { \
129+
GC_TRACE_SET_COLOR(ref, GC_BLACK); \
112130
GC_TYPE_INFO(ref) &= ~(GC_COLOR << GC_INFO_SHIFT); \
113131
} while (0)
114132

115133
#define GC_REF_SET_PURPLE(ref) do { \
134+
GC_TRACE_SET_COLOR(ref, GC_PURPLE); \
116135
GC_TYPE_INFO(ref) |= (GC_COLOR << GC_INFO_SHIFT); \
117136
} while (0)
118137

@@ -232,21 +251,6 @@ static zend_gc_globals gc_globals;
232251
# define GC_BENCH_PEAK(peak, counter)
233252
#endif
234253

235-
#if ZEND_GC_DEBUG > 1
236-
# define GC_TRACE(format, ...) fprintf(stderr, format "\n", ##__VA_ARGS__);
237-
# define GC_TRACE_REF(ref, format, ...) \
238-
do { \
239-
gc_trace_ref((zend_refcounted *) ref); \
240-
fprintf(stderr, format "\n", ##__VA_ARGS__); \
241-
} while (0)
242-
# define GC_TRACE_SET_COLOR(ref, color) \
243-
GC_TRACE_REF(ref, "->%s", gc_color_name(color))
244-
#else
245-
# define GC_TRACE_REF(ref, format, ...)
246-
# define GC_TRACE_SET_COLOR(ref, new_color)
247-
# define GC_TRACE(str)
248-
#endif
249-
250254

251255
#define GC_STACK_SEGMENT_SIZE (((4096 - ZEND_MM_OVERHEAD) / sizeof(void*)) - 2)
252256

0 commit comments

Comments
 (0)