wfdsink : destroy resource manager in _mm_wfd_sink_destroy() 80/228780/3 accepted/tizen/unified/20200329.014218 submit/tizen/20200327.055021
authorHyunsoo Park <hance.park@samsung.com>
Wed, 25 Mar 2020 11:11:34 +0000 (20:11 +0900)
committerHyunsoo Park <hance.park@samsung.com>
Thu, 26 Mar 2020 08:10:42 +0000 (17:10 +0900)
Change-Id: I4140fdf4f9b43c3c280f95ae576cf7d7b7a589df
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
packaging/libmm-wfd.spec
src/mm_wfd_sink_priv.c

index fd4b814..14e54f4 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-wfd
 Summary:    Multimedia Framework Wifi-Display Library
-Version:    0.3.2
+Version:    0.3.3
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 41f8dea..c125776 100644 (file)
@@ -182,8 +182,8 @@ int _mm_wfd_sink_create(mm_wfd_sink_t **wfd_sink, const char *ini_path)
                __resource_release_cb, new_wfd_sink, &new_wfd_sink->resource_manager)
                != MM_RESOURCE_MANAGER_ERROR_NONE) {
                wfd_sink_error("failed to initialize resource manager");
-               result = MM_ERROR_WFD_INTERNAL;
-               goto fail_to_init;
+               MMWFDSINK_FREEIF(new_wfd_sink);
+               return MM_ERROR_WFD_INTERNAL;
        }
 
        /* Initialize gstreamer related */
@@ -241,9 +241,8 @@ int _mm_wfd_sink_create(mm_wfd_sink_t **wfd_sink, const char *ini_path)
        /* construct attributes */
        new_wfd_sink->attrs = _mmwfd_construct_attribute((MMHandleType)new_wfd_sink);
        if (!new_wfd_sink->attrs) {
-               MMWFDSINK_FREEIF(new_wfd_sink);
                wfd_sink_error("failed to set attribute");
-               return MM_ERROR_WFD_INTERNAL;
+               goto fail_to_attrs;
        }
 
        /* load ini for initialize */
@@ -283,6 +282,8 @@ fail_to_init:
        mm_wfd_sink_ini_unload(&new_wfd_sink->ini);
 fail_to_load_ini:
        _mmwfd_deconstruct_attribute(new_wfd_sink->attrs);
+fail_to_attrs:
+       mm_resource_manager_destroy(new_wfd_sink->resource_manager);
        MMWFDSINK_FREEIF(new_wfd_sink);
 
        *wfd_sink = NULL;
@@ -551,6 +552,12 @@ int _mm_wfd_sink_destroy(mm_wfd_sink_t *wfd_sink)
        /* release attributes */
        _mmwfd_deconstruct_attribute(wfd_sink->attrs);
 
+       /* release resource manager */
+       if(MM_ERROR_NONE != mm_resource_manager_destroy(wfd_sink->resource_manager)) {
+               wfd_sink_error("failed to destroy resource manager");
+               return MM_ERROR_WFD_INTERNAL;
+       }
+
        /* release the others */
        g_free(wfd_sink->coupled_sink_address);