summaryrefslogtreecommitdiff
path: root/Zend/zend_alloc.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-12-08 12:47:45 +0000
committerDmitry Stogov <dmitry@php.net>2006-12-08 12:47:45 +0000
commitdd9b5a08f0e7e8fccc6884f38ef432a9f21cc597 (patch)
treede6ac5e4e58caf388ab24630f847acd488411943 /Zend/zend_alloc.c
parent802e12674eccee28254f1df3fd8d9fdc0f0a495b (diff)
downloadphp-git-dd9b5a08f0e7e8fccc6884f38ef432a9f21cc597.tar.gz
Fixed possible failure
Diffstat (limited to 'Zend/zend_alloc.c')
-rw-r--r--Zend/zend_alloc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 1c81eeb79a..ba109f9be9 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -557,15 +557,14 @@ static void zend_mm_free_cache(zend_mm_heap *heap)
while (mm_block) {
size_t size = ZEND_MM_BLOCK_SIZE(mm_block);
zend_mm_free_block *q = mm_block->prev_free_block;
- zend_mm_block *prev_block = ZEND_MM_PREV_BLOCK(mm_block);
zend_mm_block *next_block = ZEND_MM_NEXT_BLOCK(mm_block);
heap->cached -= size;
- if (ZEND_MM_IS_FREE_BLOCK(prev_block)) {
- size += ZEND_MM_FREE_BLOCK_SIZE(prev_block);
- mm_block = (zend_mm_free_block*)prev_block;
- zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block);
+ if (ZEND_MM_PREV_BLOCK_IS_FREE(mm_block)) {
+ mm_block = (zend_mm_free_block*)ZEND_MM_PREV_BLOCK(mm_block);
+ size += ZEND_MM_FREE_BLOCK_SIZE(mm_block);
+ zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block);
}
if (ZEND_MM_IS_FREE_BLOCK(next_block)) {
size += ZEND_MM_FREE_BLOCK_SIZE(next_block);