summaryrefslogtreecommitdiff
path: root/Zend/zend_alloc.c
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-11-27 15:59:43 +0100
committerAnatol Belski <ab@php.net>2014-11-27 15:59:43 +0100
commit864cd82acef03b75b994f3fd98d9b4a51a99204a (patch)
tree4edfbcc6ce5d2f6fa6da9908503119c70ad868b5 /Zend/zend_alloc.c
parent81a24f054b934ccb1be77049dd9c244283efcba7 (diff)
parent4dcc8a63715b1bb42518e9c217ea493007016932 (diff)
downloadphp-git-864cd82acef03b75b994f3fd98d9b4a51a99204a.tar.gz
Merge remote-tracking branch 'origin/master' into native-tls
* origin/master: updated NEWS refactored the mbstring config.w32 Update NEWS Fixed compilation warnings Fixed bug #68504 --with-libmbfl configure option not present on Windows Changed "finally" handling. Removed EX(fast_ret) and EX(delayed_exception). Allocate and use additional IS_TMP_VAR slot on VM stack instead. the darwin specific test fails for me with the same output which is the expected for the original test I couldn't find anybody who managed to see this test passing, but I found a bunch of other reports on qa.php.net/reports and on google which do see this test failing on mac. if this change causes you to have this test failing on Mac, please drop me a mail so we can improve the current test so it passes for everybody. #68446 is fixed Reimplemented silence operator (@) handling on exceptions. Now each silence region is stored in op_array->brk_cont_array. On exception ZEND_HANDLE_EXCEPTION handler traverse this array and restore original EG(error_reporting) if exception occured inside a "silence" region. remove the NEWS entries for the reverted stuff typo fix go back with phpdbg to the state of 5.6.3, reverting the controversial commits(remote debugging/xml protocol) 5.5.21 now New label length test Fix ext/filter/tests/033.phpt Fix filter_list test FILTER_VALIDATE_DOMAIN and RFC conformance for FILTER_VALIDATE_URL Conflicts: ext/mbstring/config.w32
Diffstat (limited to 'Zend/zend_alloc.c')
-rw-r--r--Zend/zend_alloc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 3041857dc6..1614690414 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -2130,6 +2130,7 @@ ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size)
return zend_mm_alloc_huge(AG(mm_heap), 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(); \
@@ -2144,6 +2145,18 @@ ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size)
zend_mm_free_small(AG(mm_heap), ptr, _num); \
} \
}
+#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); \
+ ZEND_MM_CHECK(chunk->heap == AG(mm_heap), "zend_mm_heap corrupted"); \
+ zend_mm_free_small(AG(mm_heap), ptr, _num); \
+ } \
+ }
+#endif
ZEND_MM_BINS_INFO(_ZEND_BIN_FREE, x, y)