diff options
Diffstat (limited to 'Zend/zend_alloc.c')
-rw-r--r-- | Zend/zend_alloc.c | 68 |
1 files changed, 27 insertions, 41 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index a1af2fcc7f..6ee516176f 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -368,7 +368,6 @@ static ZEND_NORETURN void zend_mm_safe_error(zend_mm_heap *heap, #endif size_t size) { - TSRMLS_FETCH(); heap->overflow = 1; zend_try { @@ -1836,7 +1835,7 @@ static zend_long zend_mm_find_leaks(zend_mm_heap *heap, zend_mm_chunk *p, int i, return count; } -static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) +static void zend_mm_check_leaks(zend_mm_heap *heap) { zend_mm_huge_list *list; zend_mm_chunk *p; @@ -1859,12 +1858,12 @@ static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) leak.lineno = list->dbg.lineno; leak.orig_lineno = list->dbg.orig_lineno; - zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL TSRMLS_CC); - zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak TSRMLS_CC); + zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak); //??? repeated = zend_mm_find_leaks_huge(segment, p); total += 1 + repeated; if (repeated) { - zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated TSRMLS_CC); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated); } list = list->next; @@ -1892,8 +1891,8 @@ static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) leak.lineno = dbg->lineno; leak.orig_lineno = dbg->orig_lineno; - zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL TSRMLS_CC); - zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak TSRMLS_CC); + zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak); dbg->size = 0; dbg->filename = NULL; @@ -1903,7 +1902,7 @@ static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) zend_mm_find_leaks(heap, p, i + bin_pages[bin_num], &leak); total += 1 + repeated; if (repeated) { - zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated TSRMLS_CC); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated); } } dbg = (zend_mm_debug_info*)((char*)dbg + bin_data_size[bin_num]); @@ -1921,15 +1920,15 @@ static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) leak.lineno = dbg->lineno; leak.orig_lineno = dbg->orig_lineno; - zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL TSRMLS_CC); - zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak TSRMLS_CC); + zend_message_dispatcher(ZMSG_LOG_SCRIPT_NAME, NULL); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_DETECTED, &leak); zend_mm_bitset_reset_range(p->free_map, i, pages_count); repeated = zend_mm_find_leaks(heap, p, i + pages_count, &leak); total += 1 + repeated; if (repeated) { - zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated TSRMLS_CC); + zend_message_dispatcher(ZMSG_MEMORY_LEAK_REPEATED, (void *)(zend_uintptr_t)repeated); } i += pages_count; } @@ -1940,12 +1939,12 @@ static void zend_mm_check_leaks(zend_mm_heap *heap TSRMLS_DC) p = p->next; } while (p != heap->main_chunk); if (total) { - zend_message_dispatcher(ZMSG_MEMORY_LEAKS_GRAND_TOTAL, &total TSRMLS_CC); + zend_message_dispatcher(ZMSG_MEMORY_LEAKS_GRAND_TOTAL, &total); } } #endif -void zend_mm_shutdown(zend_mm_heap *heap, int full, int silent TSRMLS_DC) +void zend_mm_shutdown(zend_mm_heap *heap, int full, int silent) { zend_mm_chunk *p; zend_mm_huge_list *list; @@ -1958,7 +1957,7 @@ void zend_mm_shutdown(zend_mm_heap *heap, int full, int silent TSRMLS_DC) #if ZEND_DEBUG if (!silent) { - zend_mm_check_leaks(heap TSRMLS_CC); + zend_mm_check_leaks(heap); } #endif @@ -2080,13 +2079,13 @@ typedef struct _zend_alloc_globals { #ifdef ZTS static int alloc_globals_id; -# define AG(v) TSRMG(alloc_globals_id, zend_alloc_globals *, v) +# define AG(v) ZEND_TSRMG(alloc_globals_id, zend_alloc_globals *, v) #else # define AG(v) (alloc_globals.v) static zend_alloc_globals alloc_globals; #endif -ZEND_API int is_zend_mm(TSRMLS_D) +ZEND_API int is_zend_mm(void) { #if ZEND_MM_CUSTOM return !AG(mm_heap)->use_custom_heap; @@ -2117,7 +2116,6 @@ ZEND_API int is_zend_mm(TSRMLS_D) # define _ZEND_BIN_ALLOCATOR(_num, _size, _elements, _pages, x, y) \ ZEND_API void* ZEND_FASTCALL _emalloc_ ## _size(void) { \ - TSRMLS_FETCH(); \ ZEND_MM_CUSTOM_ALLOCATOR(_size); \ return zend_mm_alloc_small(AG(mm_heap), _size, _num ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \ } @@ -2126,7 +2124,6 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_ALLOCATOR, x, y) ZEND_API void* ZEND_FASTCALL _emalloc_large(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); ZEND_MM_CUSTOM_ALLOCATOR(size); return zend_mm_alloc_large(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); @@ -2134,7 +2131,6 @@ ZEND_API void* ZEND_FASTCALL _emalloc_large(size_t size ZEND_FILE_LINE_DC ZEND_F ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) { - TSRMLS_FETCH(); ZEND_MM_CUSTOM_ALLOCATOR(size); return zend_mm_alloc_huge(AG(mm_heap), size); @@ -2143,7 +2139,6 @@ ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) #if ZEND_DEBUG # define _ZEND_BIN_FREE(_num, _size, _elements, _pages, x, y) \ ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \ - TSRMLS_FETCH(); \ ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \ { \ size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); \ @@ -2158,7 +2153,6 @@ ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) #else # define _ZEND_BIN_FREE(_num, _size, _elements, _pages, x, y) \ ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \ - TSRMLS_FETCH(); \ ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \ { \ zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE); \ @@ -2172,7 +2166,6 @@ ZEND_MM_BINS_INFO(_ZEND_BIN_FREE, x, y) ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size) { - TSRMLS_FETCH(); ZEND_MM_CUSTOM_DEALLOCATOR(ptr); { @@ -2190,7 +2183,6 @@ ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size) ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) { - TSRMLS_FETCH(); ZEND_MM_CUSTOM_DEALLOCATOR(ptr); // TODO: use size??? @@ -2200,7 +2192,6 @@ ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); #if ZEND_MM_CUSTOM if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { @@ -2212,7 +2203,6 @@ ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LI ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); #if ZEND_MM_CUSTOM if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { @@ -2225,7 +2215,6 @@ ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { - TSRMLS_FETCH(); if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { return AG(mm_heap)->_realloc(ptr, size); @@ -2233,7 +2222,7 @@ ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size, int allow_failure return zend_mm_realloc_heap(AG(mm_heap), ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); } -ZEND_API size_t ZEND_FASTCALL _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) +ZEND_API size_t ZEND_FASTCALL _zend_mem_block_size(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { return 0; @@ -2279,7 +2268,6 @@ ZEND_API void* ZEND_FASTCALL _ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_D { void *p; #ifdef ZEND_SIGNALS - TSRMLS_FETCH(); #endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2298,7 +2286,6 @@ ZEND_API char* ZEND_FASTCALL _estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_ size_t length; char *p; #ifdef ZEND_SIGNALS - TSRMLS_FETCH(); #endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2318,7 +2305,6 @@ ZEND_API char* ZEND_FASTCALL _estrndup(const char *s, size_t length ZEND_FILE_LI { char *p; #ifdef ZEND_SIGNALS - TSRMLS_FETCH(); #endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2339,7 +2325,6 @@ ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length) { char *p; #ifdef ZEND_SIGNALS - TSRMLS_FETCH(); #endif HANDLE_BLOCK_INTERRUPTIONS(); @@ -2358,7 +2343,7 @@ ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length) } -ZEND_API int zend_set_memory_limit(size_t memory_limit TSRMLS_DC) +ZEND_API int zend_set_memory_limit(size_t memory_limit) { #if ZEND_MM_LIMIT AG(mm_heap)->limit = (memory_limit >= ZEND_MM_CHUNK_SIZE) ? memory_limit : ZEND_MM_CHUNK_SIZE; @@ -2366,7 +2351,7 @@ ZEND_API int zend_set_memory_limit(size_t memory_limit TSRMLS_DC) return SUCCESS; } -ZEND_API size_t zend_memory_usage(int real_usage TSRMLS_DC) +ZEND_API size_t zend_memory_usage(int real_usage) { #if ZEND_MM_STAT if (real_usage) { @@ -2379,7 +2364,7 @@ ZEND_API size_t zend_memory_usage(int real_usage TSRMLS_DC) return 0; } -ZEND_API size_t zend_memory_peak_usage(int real_usage TSRMLS_DC) +ZEND_API size_t zend_memory_peak_usage(int real_usage) { #if ZEND_MM_STAT if (real_usage) { @@ -2391,12 +2376,12 @@ ZEND_API size_t zend_memory_peak_usage(int real_usage TSRMLS_DC) return 0; } -ZEND_API void shutdown_memory_manager(int silent, int full_shutdown TSRMLS_DC) +ZEND_API void shutdown_memory_manager(int silent, int full_shutdown) { - zend_mm_shutdown(AG(mm_heap), full_shutdown, silent TSRMLS_CC); + zend_mm_shutdown(AG(mm_heap), full_shutdown, silent); } -static void alloc_globals_ctor(zend_alloc_globals *alloc_globals TSRMLS_DC) +static void alloc_globals_ctor(zend_alloc_globals *alloc_globals) { #if ZEND_MM_CUSTOM char *tmp = getenv("USE_ZEND_ALLOC"); @@ -2411,17 +2396,18 @@ static void alloc_globals_ctor(zend_alloc_globals *alloc_globals TSRMLS_DC) return; } #endif + ZEND_TSRMLS_CACHE_UPDATE; alloc_globals->mm_heap = zend_mm_init(); } #ifdef ZTS -static void alloc_globals_dtor(zend_alloc_globals *alloc_globals TSRMLS_DC) +static void alloc_globals_dtor(zend_alloc_globals *alloc_globals) { - shutdown_memory_manager(1, 1 TSRMLS_CC); + zend_mm_shutdown(alloc_globals->mm_heap, 1, 1); } #endif -ZEND_API void start_memory_manager(TSRMLS_D) +ZEND_API void start_memory_manager(void) { #ifdef ZTS ts_allocate_id(&alloc_globals_id, sizeof(zend_alloc_globals), (ts_allocate_ctor) alloc_globals_ctor, (ts_allocate_dtor) alloc_globals_dtor); @@ -2437,7 +2423,7 @@ ZEND_API void start_memory_manager(TSRMLS_D) #endif } -ZEND_API zend_mm_heap *zend_mm_set_heap(zend_mm_heap *new_heap TSRMLS_DC) +ZEND_API zend_mm_heap *zend_mm_set_heap(zend_mm_heap *new_heap) { zend_mm_heap *old_heap; |