aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2015-12-31 14:54:01 -0800
committerGuy Harris <guy@alum.mit.edu>2015-12-31 22:54:27 +0000
commitc14df7f7a80b3650eff08e46c9fbfbd522b435dc (patch)
treec71ce2d3f35140e249765af43a1e9382b5490374
parent01dc4754847c6d55a470d1e534a8a60024b3031a (diff)
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>
-rw-r--r--epan/uat.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/epan/uat.h b/epan/uat.h
index 0a2c515e8e..4dc7d51cb7 100644
--- a/epan/uat.h
+++ b/epan/uat.h
@@ -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)) {\