Jacek Caban : user32: Use CreateAcceleratorTableW in LoadAcceleratorsW.
Alexandre Julliard
julliard at winehq.org
Wed Mar 2 15:39:51 CST 2022
Module: wine
Branch: master
Commit: ec036bc60577419c40860d3dfc2deade4fdadc08
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ec036bc60577419c40860d3dfc2deade4fdadc08
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Mar 2 15:05:58 2022 +0100
user32: Use CreateAcceleratorTableW in LoadAcceleratorsW.
Instead of accessing accelerators object directly.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/resource.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/dlls/user32/resource.c b/dlls/user32/resource.c
index 912b7f95227..ce64833e413 100644
--- a/dlls/user32/resource.c
+++ b/dlls/user32/resource.c
@@ -54,8 +54,8 @@ struct accelerator
*/
HACCEL WINAPI LoadAcceleratorsW(HINSTANCE instance, LPCWSTR name)
{
- struct accelerator *accel;
const PE_ACCEL *pe_table;
+ ACCEL *table;
unsigned int i;
HRSRC rsrc;
HACCEL handle;
@@ -65,17 +65,16 @@ HACCEL WINAPI LoadAcceleratorsW(HINSTANCE instance, LPCWSTR name)
pe_table = LoadResource( instance, rsrc );
count = SizeofResource( instance, rsrc ) / sizeof(*pe_table);
if (!count) return 0;
- accel = HeapAlloc( GetProcessHeap(), 0, FIELD_OFFSET( struct accelerator, table[count] ));
- if (!accel) return 0;
- accel->count = count;
+ table = HeapAlloc( GetProcessHeap(), 0, count * sizeof(*table) );
+ if (!table) return 0;
for (i = 0; i < count; i++)
{
- accel->table[i].fVirt = pe_table[i].fVirt;
- accel->table[i].key = pe_table[i].key;
- accel->table[i].cmd = pe_table[i].cmd;
+ table[i].fVirt = pe_table[i].fVirt;
+ table[i].key = pe_table[i].key;
+ table[i].cmd = pe_table[i].cmd;
}
- if (!(handle = alloc_user_handle( &accel->obj, NTUSER_OBJ_ACCEL )))
- HeapFree( GetProcessHeap(), 0, accel );
+ handle = CreateAcceleratorTableW( table, count );
+ HeapFree( GetProcessHeap(), 0, table );
TRACE_(accel)("%p %s returning %p\n", instance, debugstr_w(name), handle );
return handle;
}
More information about the wine-cvs
mailing list