diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-07-08 13:25:32 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2015-07-08 13:25:32 +0100 |
commit | c31a57db00173689c60543a9838479a16b93ac91 (patch) | |
tree | 11be3c2a840cf2485e92d70ac325b71033a20f6e | |
parent | 42156a7c34903beb40920368ae9027c3276a6a23 (diff) | |
download | efl-c31a57db00173689c60543a9838479a16b93ac91.tar.gz |
eolian/generator: delete a stringshare correctly on failure
-rw-r--r-- | src/bin/eolian/docs_generator.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/bin/eolian/docs_generator.c b/src/bin/eolian/docs_generator.c index 9e4e66ec05..68045dedf0 100644 --- a/src/bin/eolian/docs_generator.c +++ b/src/bin/eolian/docs_generator.c @@ -45,7 +45,11 @@ _generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy) const Eolian_Type *tp = eolian_type_struct_get_by_name(bname); if (tp) { - if (!eolian_type_struct_field_get(tp, sfx + 1)) goto noref; + if (!eolian_type_struct_field_get(tp, sfx + 1)) + { + eina_stringshare_del(bname); + goto noref; + } _generate_ref(bname, wbuf, use_legacy); eina_strbuf_append(wbuf, sfx); eina_stringshare_del(bname); @@ -56,7 +60,11 @@ _generate_ref(const char *refn, Eina_Strbuf *wbuf, Eina_Bool use_legacy) if (tp) { const Eolian_Enum_Type_Field *efl = eolian_type_enum_field_get(tp, sfx + 1); - if (!efl) goto noref; + if (!efl) + { + eina_stringshare_del(bname); + goto noref; + } _generate_ref(bname, wbuf, use_legacy); Eina_Stringshare *str = eolian_type_enum_field_c_name_get(efl); eina_strbuf_append_char(wbuf, '.'); |