From: David Kahurani k.kahurani@gmail.com
This table doesn't really grow when the total number of handles exceeds the initial size. It will instead try to wrap and lead to an access violation.
Signed-off-by: David Kahurani k.kahurani@gmail.com --- dlls/ddraw/main.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c index 1ba2900704f..4dec3293acb 100644 --- a/dlls/ddraw/main.c +++ b/dlls/ddraw/main.c @@ -150,6 +150,7 @@ DWORD ddraw_allocate_handle(struct ddraw_handle_table *t, void *object, enum ddr t->free_entries = entry->object; entry->object = object; entry->type = type; + t->entry_count++;
return idx; } @@ -198,6 +199,7 @@ void *ddraw_free_handle(struct ddraw_handle_table *t, DWORD handle, enum ddraw_h entry->object = t->free_entries; entry->type = DDRAW_HANDLE_FREE; t->free_entries = entry; + t->entry_count--;
return object; }