Apply tizen 3.0 based product patchsets
[platform/core/connectivity/bluetooth-frwk.git] / bt-service / bt-service-map-client.c
index 0939bf0..3139075 100644 (file)
@@ -97,12 +97,11 @@ int _bt_create_session_sync(const char* address, char** session_id)
                                                BT_OBEX_CLIENT_PATH,
                                                BT_OBEX_CLIENT_INTERFACE,
                                                NULL, &err);
-       if (err) {
+       if (session_proxy == NULL && err) {
                BT_ERR("Unable to create session_proxy: %s", err->message);
                g_clear_error(&err);
                return BLUETOOTH_ERROR_INTERNAL;
        }
-       retv_if(session_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
 
        GVariantBuilder* builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
        g_variant_builder_add(builder, "{sv}", "Target",
@@ -113,6 +112,9 @@ int _bt_create_session_sync(const char* address, char** session_id)
 
        GVariant *value = g_dbus_proxy_call_sync(session_proxy, "CreateSession", param,
                        G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+
+       g_object_unref(session_proxy);
+
        if (err != NULL) {
                BT_ERR("Could not create session: %s\n", err->message);
                g_error_free(err);
@@ -149,17 +151,19 @@ int _bt_destroy_session_sync(const char* session_id)
                                                BT_OBEX_CLIENT_PATH,
                                                BT_OBEX_CLIENT_INTERFACE,
                                                NULL, &err);
-       if (err) {
+       if (session_proxy == NULL && err) {
                BT_ERR("Unable to create session_proxy: %s", err->message);
                g_clear_error(&err);
                return BLUETOOTH_ERROR_INTERNAL;
        }
-       retv_if(session_proxy == NULL, BLUETOOTH_ERROR_INTERNAL);
 
        GVariant *param = g_variant_new("(o)", session_id);
 
        g_dbus_proxy_call_sync(session_proxy, "RemoveSession", param,
                        G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+
+       g_object_unref(session_proxy);
+
        if (err != NULL) {
                BT_ERR("Could not remove session: %s\n", err->message);
                g_error_free(err);
@@ -577,10 +581,8 @@ static void __bt_push_message_cb(GDBusProxy *proxy,
                g_clear_error(&error);
        }
 
-       if (value) {
+       if (value)
                g_variant_get(value, "(oa{sv})", &transfer_object_path, &iter);
-               g_variant_unref(value);
-       }
 
        BT_DBG("transfer object path: [%s]", transfer_object_path);
 
@@ -684,10 +686,8 @@ static void __bt_get_message_cb(GDBusProxy *proxy,
                g_clear_error(&error);
        }
 
-       if (value) {
+       if (value)
                g_variant_get(value, "(oa{sv})", &transfer_object_path, &iter);
-               g_variant_unref(value);
-       }
 
        BT_DBG("transfer object path: [%s]", transfer_object_path);