wrc: Explicitly define structure creation functions instead of playing with macros.
This commit is contained in:
parent
5fabc5cca7
commit
d0a6c806a9
|
@ -45,31 +45,144 @@ typedef struct
|
||||||
} BITMAPOS2HEADER;
|
} BITMAPOS2HEADER;
|
||||||
#include <poppack.h>
|
#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 */
|
/* New instances for all types of structures */
|
||||||
/* Very inefficient (in size), but very functional :-]
|
/* Very inefficient (in size), but very functional :-]
|
||||||
* Especially for type-checking.
|
* 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 *new_resource(enum res_e t, void *res, int memopt, language_t *lan)
|
||||||
{
|
{
|
||||||
resource_t *r = xmalloc(sizeof(resource_t));
|
resource_t *r = xmalloc(sizeof(resource_t));
|
||||||
|
|
|
@ -23,36 +23,25 @@
|
||||||
|
|
||||||
#include "wrctypes.h"
|
#include "wrctypes.h"
|
||||||
|
|
||||||
#define __NEW_STRUCT_FUNC(p) \
|
dialog_t *new_dialog(void);
|
||||||
p##_t *new_##p(void)\
|
name_id_t *new_name_id(void);
|
||||||
{\
|
menu_t *new_menu(void);
|
||||||
p##_t * ret = xmalloc(sizeof(*ret)); \
|
menu_item_t *new_menu_item(void);
|
||||||
memset( ret, 0, sizeof(*ret) ); \
|
control_t *new_control(void);
|
||||||
return ret; \
|
icon_t *new_icon(void);
|
||||||
}
|
cursor_t *new_cursor(void);
|
||||||
|
versioninfo_t *new_versioninfo(void);
|
||||||
#define __NEW_STRUCT_PROTO(p) p##_t *new_##p(void)
|
ver_value_t *new_ver_value(void);
|
||||||
|
ver_block_t *new_ver_block(void);
|
||||||
__NEW_STRUCT_PROTO(dialog);
|
stt_entry_t *new_stt_entry(void);
|
||||||
__NEW_STRUCT_PROTO(name_id);
|
accelerator_t *new_accelerator(void);
|
||||||
__NEW_STRUCT_PROTO(menu);
|
event_t *new_event(void);
|
||||||
__NEW_STRUCT_PROTO(menu_item);
|
raw_data_t *new_raw_data(void);
|
||||||
__NEW_STRUCT_PROTO(control);
|
lvc_t *new_lvc(void);
|
||||||
__NEW_STRUCT_PROTO(icon);
|
res_count_t *new_res_count(void);
|
||||||
__NEW_STRUCT_PROTO(cursor);
|
string_t *new_string(void);
|
||||||
__NEW_STRUCT_PROTO(versioninfo);
|
toolbar_item_t *new_toolbar_item(void);
|
||||||
__NEW_STRUCT_PROTO(ver_value);
|
ani_any_t *new_ani_any(void);
|
||||||
__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);
|
|
||||||
|
|
||||||
resource_t *new_resource(enum res_e t, void *res, int memopt, language_t *lan);
|
resource_t *new_resource(enum res_e t, void *res, int memopt, language_t *lan);
|
||||||
version_t *new_version(DWORD v);
|
version_t *new_version(DWORD v);
|
||||||
characts_t *new_characts(DWORD c);
|
characts_t *new_characts(DWORD c);
|
||||||
|
|
Loading…
Reference in New Issue