diff options
author | Guy Harris <guy@alum.mit.edu> | 2015-12-31 14:54:01 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2015-12-31 22:54:27 +0000 |
commit | c14df7f7a80b3650eff08e46c9fbfbd522b435dc (patch) | |
tree | c71ce2d3f35140e249765af43a1e9382b5490374 | |
parent | 01dc4754847c6d55a470d1e534a8a60024b3031a (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.h | 8 |
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)) {\ |