Alexandre Julliard : wrc: Explicitly define structure creation functions instead of playing with macros .
Alexandre Julliard
julliard at winehq.org
Thu Dec 30 10:49:56 CST 2010
Module: wine
Branch: master
Commit: d0a6c806a9d1e55838afec2e2da521996f675ad3
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d0a6c806a9d1e55838afec2e2da521996f675ad3
Author: Alexandre Julliard <julliard at 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);
More information about the wine-cvs
mailing list