eldbus-codegen: More memory leak fixes for generated code.
authorStefan Schmidt <s.schmidt@samsung.com>
Mon, 24 Nov 2014 09:04:03 +0000 (10:04 +0100)
committerStefan Schmidt <s.schmidt@samsung.com>
Mon, 24 Nov 2014 09:14:23 +0000 (10:14 +0100)
Same fix as we did for simple method calls we need in complex method calls as
well. Unref message on error path.

@fix

src/bin/eldbus/source_client.c

index 07f5773..8d5fdd1 100644 (file)
@@ -101,6 +101,7 @@ source_client_complex_method_call_generate(const DBus_Method *method, Eina_Strbu
         eina_strbuf_append_printf(c_code, "   if (!eldbus_message_from_eina_value(\"%s\", msg, args))\n", eina_strbuf_string_get(full_signature));
         eina_strbuf_append_printf(c_code, "     {\n");
         eina_strbuf_append_printf(c_code, "        ERR(\"Error: Filling message from eina value.\");\n");
+        eina_strbuf_append_printf(c_code, "        eldbus_message_unref(msg);\n");
         eina_strbuf_append_printf(c_code, "        return;\n");
         eina_strbuf_append_printf(c_code, "     }\n");
         eina_strbuf_append_printf(c_code, "   eldbus_proxy_send(proxy, msg, %s, NULL, -1);\n", method->cb_name);
@@ -120,6 +121,7 @@ source_client_complex_method_call_generate(const DBus_Method *method, Eina_Strbu
    eina_strbuf_append_printf(c_code, "   if (!eldbus_message_from_eina_value(\"%s\", msg, args))\n", eina_strbuf_string_get(full_signature));
    eina_strbuf_append_printf(c_code, "     {\n");
    eina_strbuf_append_printf(c_code, "        ERR(\"Error: Filling message from eina value.\");\n");
+   eina_strbuf_append_printf(c_code, "        eldbus_message_unref(msg);\n");
    eina_strbuf_append_printf(c_code, "        return NULL;\n");
    eina_strbuf_append_printf(c_code, "     }\n");
    eina_strbuf_append_printf(c_code, "   p = eldbus_proxy_send(proxy, msg, %s, cb, -1);\n", method->cb_name);