Don't allocate something until we know we need it.

From change I1be25fa3e2f54fb32058ac0b5c1631b193b07701.

Change-Id: Iad01cd4c5920afcdc1f8329937f4141cf8bc0ab4
Reviewed-on: https://code.wireshark.org/review/12979
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
Guy Harris 2015-12-31 14:54:01 -08:00
parent 01dc475484
commit c14df7f7a8
1 changed files with 3 additions and 5 deletions

View File

@ -522,17 +522,15 @@ static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, g
g_free(str); } \
static void basename ## _ ## field_name ## _tostr_cb(void* rec, const char** out_ptr, unsigned* out_len, const void* vs, const void* UNUSED_PARAMETER(u2)) {\
guint i; \
char *str = g_strdup(default_str); \
*out_ptr = str; \
*out_len = (unsigned)strlen(default_str);\
for(i=0;((const value_string*)vs)[i].strptr;i++) { \
if ( ((const value_string*)vs)[i].value == ((rec_t*)rec)->field_name ) { \
g_free(str); \
*out_ptr = g_strdup(((const value_string*)vs)[i].strptr); \
*out_len = (unsigned)strlen(*out_ptr); \
return; \
} \
} } \
} \
*out_ptr = g_strdup(default_str); \
*out_len = (unsigned)strlen(default_str); }
#define UAT_VS_CSTRING_DEF(basename,field_name,rec_t,default_val,default_str) \
static void basename ## _ ## field_name ## _set_cb(void* rec, const char* buf, guint len, const void* vs, const void* UNUSED_PARAMETER(u2)) {\