Matteo Bruni (@Mystral) commented about dlls/d3dx9_36/sprite.c:
- }
- else if (This->allocated_sprites <= This->sprite_count)
- {
new_sprites = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
This->sprites, This->allocated_sprites * 2 * sizeof(*This->sprites));
if (!new_sprites)
return E_OUTOFMEMORY;
This->sprites = new_sprites;
This->allocated_sprites *= 2;
- }
- new_size = This->allocated_sprites ? This->allocated_sprites * 2 : 32;
- new_sprites = realloc(This->sprites, new_size * sizeof(*This->sprites));
- if (!new_sprites)
return E_OUTOFMEMORY;
- This->sprites = new_sprites;
- This->allocated_sprites = new_size;
This is reallocating the buffer every time instead of only as needed.