Module: wine Branch: master Commit: d0a6c806a9d1e55838afec2e2da521996f675ad3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d0a6c806a9d1e55838afec2e2d...
Author: Alexandre Julliard julliard@winehq.org Date: Thu Dec 30 12:30:36 2010 +0100
wrc: Explicitly define structure creation functions instead of playing with macros.
---
tools/wrc/newstruc.c | 155 +++++++++++++++++++++++++++++++++++++++++++------- tools/wrc/newstruc.h | 49 ++++++---------- 2 files changed, 153 insertions(+), 51 deletions(-)
diff --git a/tools/wrc/newstruc.c b/tools/wrc/newstruc.c index 603eb0c..c157cb4 100644 --- a/tools/wrc/newstruc.c +++ b/tools/wrc/newstruc.c @@ -45,31 +45,144 @@ typedef struct } BITMAPOS2HEADER; #include <poppack.h>
-/* Generate new_* functions that have no parameters (NOTE: no ';') */ -__NEW_STRUCT_FUNC(dialog) -__NEW_STRUCT_FUNC(name_id) -__NEW_STRUCT_FUNC(menu) -__NEW_STRUCT_FUNC(menu_item) -__NEW_STRUCT_FUNC(control) -__NEW_STRUCT_FUNC(icon) -__NEW_STRUCT_FUNC(cursor) -__NEW_STRUCT_FUNC(versioninfo) -__NEW_STRUCT_FUNC(ver_value) -__NEW_STRUCT_FUNC(ver_block) -__NEW_STRUCT_FUNC(stt_entry) -__NEW_STRUCT_FUNC(accelerator) -__NEW_STRUCT_FUNC(event) -__NEW_STRUCT_FUNC(raw_data) -__NEW_STRUCT_FUNC(lvc) -__NEW_STRUCT_FUNC(res_count) -__NEW_STRUCT_FUNC(string) -__NEW_STRUCT_FUNC(toolbar_item) -__NEW_STRUCT_FUNC(ani_any) - /* New instances for all types of structures */ /* Very inefficient (in size), but very functional :-] * Especially for type-checking. */ + +dialog_t *new_dialog(void) +{ + dialog_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +name_id_t *new_name_id(void) +{ + name_id_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +menu_t *new_menu(void) +{ + menu_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +menu_item_t *new_menu_item(void) +{ + menu_item_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +control_t *new_control(void) +{ + control_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +icon_t *new_icon(void) +{ + icon_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +cursor_t *new_cursor(void) +{ + cursor_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +versioninfo_t *new_versioninfo(void) +{ + versioninfo_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +ver_value_t *new_ver_value(void) +{ + ver_value_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +ver_block_t *new_ver_block(void) +{ + ver_block_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +stt_entry_t *new_stt_entry(void) +{ + stt_entry_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +accelerator_t *new_accelerator(void) +{ + accelerator_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +event_t *new_event(void) +{ + event_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +raw_data_t *new_raw_data(void) +{ + raw_data_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +lvc_t *new_lvc(void) +{ + lvc_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +res_count_t *new_res_count(void) +{ + res_count_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +string_t *new_string(void) +{ + string_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +toolbar_item_t *new_toolbar_item(void) +{ + toolbar_item_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + +ani_any_t *new_ani_any(void) +{ + ani_any_t *ret = xmalloc( sizeof(*ret) ); + memset( ret, 0, sizeof(*ret) ); + return ret; +} + resource_t *new_resource(enum res_e t, void *res, int memopt, language_t *lan) { resource_t *r = xmalloc(sizeof(resource_t)); diff --git a/tools/wrc/newstruc.h b/tools/wrc/newstruc.h index 3bd4c29..c7a74eb 100644 --- a/tools/wrc/newstruc.h +++ b/tools/wrc/newstruc.h @@ -23,36 +23,25 @@
#include "wrctypes.h"
-#define __NEW_STRUCT_FUNC(p) \ - p##_t *new_##p(void)\ - {\ - p##_t * ret = xmalloc(sizeof(*ret)); \ - memset( ret, 0, sizeof(*ret) ); \ - return ret; \ - } - -#define __NEW_STRUCT_PROTO(p) p##_t *new_##p(void) - -__NEW_STRUCT_PROTO(dialog); -__NEW_STRUCT_PROTO(name_id); -__NEW_STRUCT_PROTO(menu); -__NEW_STRUCT_PROTO(menu_item); -__NEW_STRUCT_PROTO(control); -__NEW_STRUCT_PROTO(icon); -__NEW_STRUCT_PROTO(cursor); -__NEW_STRUCT_PROTO(versioninfo); -__NEW_STRUCT_PROTO(ver_value); -__NEW_STRUCT_PROTO(ver_block); -__NEW_STRUCT_PROTO(stt_entry); -__NEW_STRUCT_PROTO(accelerator); -__NEW_STRUCT_PROTO(event); -__NEW_STRUCT_PROTO(raw_data); -__NEW_STRUCT_PROTO(lvc); -__NEW_STRUCT_PROTO(res_count); -__NEW_STRUCT_PROTO(string); -__NEW_STRUCT_PROTO(toolbar_item); -__NEW_STRUCT_PROTO(ani_any); - +dialog_t *new_dialog(void); +name_id_t *new_name_id(void); +menu_t *new_menu(void); +menu_item_t *new_menu_item(void); +control_t *new_control(void); +icon_t *new_icon(void); +cursor_t *new_cursor(void); +versioninfo_t *new_versioninfo(void); +ver_value_t *new_ver_value(void); +ver_block_t *new_ver_block(void); +stt_entry_t *new_stt_entry(void); +accelerator_t *new_accelerator(void); +event_t *new_event(void); +raw_data_t *new_raw_data(void); +lvc_t *new_lvc(void); +res_count_t *new_res_count(void); +string_t *new_string(void); +toolbar_item_t *new_toolbar_item(void); +ani_any_t *new_ani_any(void); resource_t *new_resource(enum res_e t, void *res, int memopt, language_t *lan); version_t *new_version(DWORD v); characts_t *new_characts(DWORD c);