@@ -360,6 +360,8 @@ static ZEND_NORETURN void zend_mm_safe_error(zend_mm_heap *heap,
360
360
#endif
361
361
size_t size )
362
362
{
363
+ TSRMLS_FETCH ();
364
+
363
365
heap -> overflow = 1 ;
364
366
zend_try {
365
367
zend_error_noreturn (E_ERROR ,
@@ -2097,6 +2099,7 @@ ZEND_API int is_zend_mm(TSRMLS_D)
2097
2099
2098
2100
# define _ZEND_BIN_ALLOCATOR (_num , _size , _elements , _pages , x , y ) \
2099
2101
ZEND_API void* ZEND_FASTCALL _emalloc_ ## _size(void) { \
2102
+ TSRMLS_FETCH(); \
2100
2103
ZEND_MM_CUSTOM_ALLOCATOR(_size); \
2101
2104
return zend_mm_alloc_small(AG(mm_heap), _size, _num ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
2102
2105
}
@@ -2105,18 +2108,23 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR, x, y)
2105
2108
2106
2109
ZEND_API void * ZEND_FASTCALL _emalloc_large (size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2107
2110
{
2111
+ TSRMLS_FETCH ();
2112
+
2108
2113
ZEND_MM_CUSTOM_ALLOCATOR (size );
2109
2114
return zend_mm_alloc_large (AG (mm_heap ), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC );
2110
2115
}
2111
2116
2112
2117
ZEND_API void * ZEND_FASTCALL _emalloc_huge (size_t size )
2113
2118
{
2119
+ TSRMLS_FETCH ();
2120
+
2114
2121
ZEND_MM_CUSTOM_ALLOCATOR (size );
2115
2122
return zend_mm_alloc_huge (AG (mm_heap ), size );
2116
2123
}
2117
2124
2118
2125
# define _ZEND_BIN_FREE (_num , _size , _elements , _pages , x , y ) \
2119
2126
ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \
2127
+ TSRMLS_FETCH(); \
2120
2128
ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \
2121
2129
{ \
2122
2130
size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); \
@@ -2133,6 +2141,8 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_FREE, x, y)
2133
2141
2134
2142
ZEND_API void ZEND_FASTCALL _efree_large (void * ptr , size_t size )
2135
2143
{
2144
+ TSRMLS_FETCH ();
2145
+
2136
2146
ZEND_MM_CUSTOM_DEALLOCATOR (ptr );
2137
2147
{
2138
2148
size_t page_offset = ZEND_MM_ALIGNED_OFFSET (ptr , ZEND_MM_CHUNK_SIZE );
@@ -2149,6 +2159,8 @@ ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size)
2149
2159
2150
2160
ZEND_API void ZEND_FASTCALL _efree_huge (void * ptr , size_t size )
2151
2161
{
2162
+ TSRMLS_FETCH ();
2163
+
2152
2164
ZEND_MM_CUSTOM_DEALLOCATOR (ptr );
2153
2165
// TODO: use size???
2154
2166
zend_mm_free_huge (AG (mm_heap ), ptr );
@@ -2157,6 +2169,8 @@ ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size)
2157
2169
2158
2170
ZEND_API void * ZEND_FASTCALL _emalloc (size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2159
2171
{
2172
+ TSRMLS_FETCH ();
2173
+
2160
2174
#if ZEND_MM_CUSTOM
2161
2175
if (UNEXPECTED (AG (mm_heap )-> use_custom_heap )) {
2162
2176
return AG (mm_heap )-> _malloc (size );
@@ -2167,6 +2181,8 @@ ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LI
2167
2181
2168
2182
ZEND_API void ZEND_FASTCALL _efree (void * ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2169
2183
{
2184
+ TSRMLS_FETCH ();
2185
+
2170
2186
#if ZEND_MM_CUSTOM
2171
2187
if (UNEXPECTED (AG (mm_heap )-> use_custom_heap )) {
2172
2188
AG (mm_heap )-> _free (ptr );
@@ -2178,6 +2194,8 @@ ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR
2178
2194
2179
2195
ZEND_API void * ZEND_FASTCALL _erealloc (void * ptr , size_t size , int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2180
2196
{
2197
+ TSRMLS_FETCH ();
2198
+
2181
2199
if (UNEXPECTED (AG (mm_heap )-> use_custom_heap )) {
2182
2200
return AG (mm_heap )-> _realloc (ptr , size );
2183
2201
}
@@ -2229,7 +2247,9 @@ ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size,
2229
2247
ZEND_API void * ZEND_FASTCALL _ecalloc (size_t nmemb , size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2230
2248
{
2231
2249
void * p ;
2232
-
2250
+ #ifdef ZEND_SIGNALS
2251
+ TSRMLS_FETCH ();
2252
+ #endif
2233
2253
HANDLE_BLOCK_INTERRUPTIONS ();
2234
2254
2235
2255
p = _safe_emalloc (nmemb , size , 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC );
@@ -2246,6 +2266,9 @@ ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_
2246
2266
{
2247
2267
size_t length ;
2248
2268
char * p ;
2269
+ #ifdef ZEND_SIGNALS
2270
+ TSRMLS_FETCH ();
2271
+ #endif
2249
2272
2250
2273
HANDLE_BLOCK_INTERRUPTIONS ();
2251
2274
@@ -2263,6 +2286,9 @@ ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_
2263
2286
ZEND_API char * ZEND_FASTCALL _estrndup (const char * s , size_t length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
2264
2287
{
2265
2288
char * p ;
2289
+ #ifdef ZEND_SIGNALS
2290
+ TSRMLS_FETCH ();
2291
+ #endif
2266
2292
2267
2293
HANDLE_BLOCK_INTERRUPTIONS ();
2268
2294
@@ -2281,6 +2307,9 @@ ZEND_API char* ZEND_FASTCALL _estrndup(const char *s, size_t length ZEND_FILE_LI
2281
2307
ZEND_API char * ZEND_FASTCALL zend_strndup (const char * s , size_t length )
2282
2308
{
2283
2309
char * p ;
2310
+ #ifdef ZEND_SIGNALS
2311
+ TSRMLS_FETCH ();
2312
+ #endif
2284
2313
2285
2314
HANDLE_BLOCK_INTERRUPTIONS ();
2286
2315
@@ -2338,7 +2367,6 @@ ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC)
2338
2367
2339
2368
static void alloc_globals_ctor (zend_alloc_globals * alloc_globals TSRMLS_DC )
2340
2369
{
2341
-
2342
2370
#if ZEND_MM_CUSTOM
2343
2371
char * tmp = getenv ("USE_ZEND_ALLOC" );
2344
2372
0 commit comments