Skip to content

Commit c952cc9

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Avoid cold code duplication
2 parents b2cdde0 + 8c0b0c6 commit c952cc9

File tree

1 file changed

+34
-30
lines changed

1 file changed

+34
-30
lines changed

Zend/zend_alloc.c

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2377,22 +2377,42 @@ ZEND_API int is_zend_ptr(const void *ptr)
23772377
#undef _emalloc
23782378

23792379
#if ZEND_MM_CUSTOM
2380+
2381+
static ZEND_COLD void* ZEND_FASTCALL _malloc_custom(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2382+
{
2383+
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2384+
return AG(mm_heap)->custom_heap.debug._malloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2385+
} else {
2386+
return AG(mm_heap)->custom_heap.std._malloc(size);
2387+
}
2388+
}
2389+
2390+
static ZEND_COLD void ZEND_FASTCALL _efree_custom(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2391+
{
2392+
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2393+
AG(mm_heap)->custom_heap.debug._free(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2394+
} else {
2395+
AG(mm_heap)->custom_heap.std._free(ptr);
2396+
}
2397+
}
2398+
2399+
static ZEND_COLD void* ZEND_FASTCALL _realloc_custom(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2400+
{
2401+
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2402+
return AG(mm_heap)->custom_heap.debug._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2403+
} else {
2404+
return AG(mm_heap)->custom_heap.std._realloc(ptr, size);
2405+
}
2406+
}
2407+
23802408
# define ZEND_MM_CUSTOM_ALLOCATOR(size) do { \
23812409
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { \
2382-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) { \
2383-
return AG(mm_heap)->custom_heap.debug._malloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
2384-
} else { \
2385-
return AG(mm_heap)->custom_heap.std._malloc(size); \
2386-
} \
2410+
return _malloc_custom(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
23872411
} \
23882412
} while (0)
23892413
# define ZEND_MM_CUSTOM_DEALLOCATOR(ptr) do { \
23902414
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) { \
2391-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) { \
2392-
AG(mm_heap)->custom_heap.debug._free(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
2393-
} else { \
2394-
AG(mm_heap)->custom_heap.std._free(ptr); \
2395-
} \
2415+
_efree_custom(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
23962416
return; \
23972417
} \
23982418
} while (0)
@@ -2477,11 +2497,7 @@ ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LI
24772497
{
24782498
#if ZEND_MM_CUSTOM
24792499
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) {
2480-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2481-
return AG(mm_heap)->custom_heap.debug._malloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2482-
} else {
2483-
return AG(mm_heap)->custom_heap.std._malloc(size);
2484-
}
2500+
return _malloc_custom(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
24852501
}
24862502
#endif
24872503
return zend_mm_alloc_heap(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
@@ -2491,11 +2507,7 @@ ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR
24912507
{
24922508
#if ZEND_MM_CUSTOM
24932509
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) {
2494-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2495-
AG(mm_heap)->custom_heap.debug._free(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2496-
} else {
2497-
AG(mm_heap)->custom_heap.std._free(ptr);
2498-
}
2510+
_efree_custom(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
24992511
return;
25002512
}
25012513
#endif
@@ -2506,11 +2518,7 @@ ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size ZEND_FILE_LINE_DC
25062518
{
25072519
#if ZEND_MM_CUSTOM
25082520
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) {
2509-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2510-
return AG(mm_heap)->custom_heap.debug._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2511-
} else {
2512-
return AG(mm_heap)->custom_heap.std._realloc(ptr, size);
2513-
}
2521+
return _realloc_custom(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
25142522
}
25152523
#endif
25162524
return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 0, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
@@ -2520,11 +2528,7 @@ ZEND_API void* ZEND_FASTCALL _erealloc2(void *ptr, size_t size, size_t copy_size
25202528
{
25212529
#if ZEND_MM_CUSTOM
25222530
if (UNEXPECTED(AG(mm_heap)->use_custom_heap)) {
2523-
if (ZEND_DEBUG && AG(mm_heap)->use_custom_heap == ZEND_MM_CUSTOM_HEAP_DEBUG) {
2524-
return AG(mm_heap)->custom_heap.debug._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2525-
} else {
2526-
return AG(mm_heap)->custom_heap.std._realloc(ptr, size);
2527-
}
2531+
return _realloc_custom(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
25282532
}
25292533
#endif
25302534
return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 1, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);

0 commit comments

Comments
 (0)