jscript: Fixed jsheap_grow implementation.

This commit is contained in:
Jacek Caban 2012-03-30 18:19:48 +02:00 committed by Alexandre Julliard
parent f01cd3a36d
commit b3bafb60a2
2 changed files with 10 additions and 1 deletions

View file

@ -126,13 +126,18 @@ void *jsheap_alloc(jsheap_t *heap, DWORD size)
void *jsheap_grow(jsheap_t *heap, void *mem, DWORD size, DWORD inc)
{
void *ret;
if(mem == (BYTE*)heap->blocks[heap->last_block] + heap->offset-size
&& heap->offset+inc < block_size(heap->last_block)) {
heap->offset += inc;
return mem;
}
return jsheap_alloc(heap, size+inc);
ret = jsheap_alloc(heap, size+inc);
if(ret) /* FIXME: avoid coppying for custom blocks */
memcpy(ret, mem, size);
return ret;
}
void jsheap_clear(jsheap_t *heap)

View file

@ -44,6 +44,10 @@ ok(m[0] === "aa", "m[0] = " + m[0]);
ok(RegExp.leftContext === " ", "RegExp.leftContext = " + RegExp.leftContext);
ok(RegExp.rightContext === "baaa", "RegExp.rightContext = " + RegExp.rightContext);
m = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/.exec(
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
ok(m === null, "m is not null");
re = /a+/g;
ok(re.lastIndex === 0, "re.lastIndex = " + re.lastIndex);