From 18ee50e5d2bd0f55061215e80559f1f50152bf16 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 25 Feb 2009 01:28:49 +0100 Subject: [PATCH] jscript: Fixed handling block_cnt in jsheap_alloc. --- dlls/jscript/jsutils.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index defddd4b0cd..5f24b7cd45d 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -83,25 +83,25 @@ void *jsheap_alloc(jsheap_t *heap, DWORD size) heap->block_cnt = 1; } - if(heap->offset + size < block_size(heap->last_block)) { + if(heap->offset + size <= block_size(heap->last_block)) { tmp = ((BYTE*)heap->blocks[heap->last_block])+heap->offset; heap->offset += size; return tmp; } - if(size < block_size(heap->last_block+1)) { + if(size <= block_size(heap->last_block+1)) { if(heap->last_block+1 == heap->block_cnt) { tmp = heap_realloc(heap->blocks, (heap->block_cnt+1)*sizeof(void*)); if(!tmp) return NULL; - heap->blocks = tmp; - } - tmp = heap_alloc(block_size(heap->block_cnt+1)); - if(!tmp) - return NULL; + heap->blocks = tmp; + heap->blocks[heap->block_cnt] = heap_alloc(block_size(heap->block_cnt)); + if(!heap->blocks[heap->block_cnt]) + return NULL; - heap->blocks[heap->block_cnt++] = tmp; + heap->block_cnt++; + } heap->last_block++; heap->offset = size; -- 2.11.4.GIT