From 0b06725e18079de9ad3020514771062bc3b19080 Mon Sep 17 00:00:00 2001 From: Stefan Schmidt Date: Mon, 24 Nov 2014 10:04:03 +0100 Subject: [PATCH] eldbus-codegen: More memory leak fixes for generated code. 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 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/eldbus/source_client.c b/src/bin/eldbus/source_client.c index 07f5773615..8d5fdd143b 100644 --- a/src/bin/eldbus/source_client.c +++ b/src/bin/eldbus/source_client.c @@ -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);