fix management comp_hash. 02/68602/3
authorSeunghun Lee <shiin.lee@samsung.com>
Sun, 8 May 2016 12:06:17 +0000 (21:06 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Tue, 10 May 2016 04:06:10 +0000 (13:06 +0900)
Change-Id: I246a726b423953cb229f45455478c21f94332ded

src/lib/compositor.c

index 30bcdd95ff0b0eae8e289ccac02737c6a707be2e..c1de5f7e8c628562bc7fbea0eaf129ef06383ef1 100644 (file)
@@ -272,6 +272,7 @@ pepper_efl_compositor_create(Evas_Object *win, const char *name)
         goto err_input;
      }
 
+   eina_hash_add(_comp_hash, name, comp);
    sock_name = pepper_compositor_get_socket_name(comp->pepper.comp);
    comp->name = eina_stringshare_add(sock_name);
    comp->wl.disp = pepper_compositor_get_display(comp->pepper.comp);
@@ -300,13 +301,12 @@ create_output:
         return NULL;
      }
 
-   eina_hash_add(_comp_hash, comp->name, comp);
-
    pthread_mutex_unlock(&_comp_hash_lock);
 
    return comp->name;
 
 err_output:
+   eina_hash_del(_comp_hash, name, comp);
    eina_stringshare_del(comp->name);
    ecore_main_fd_handler_del(comp->fd_hdlr);
 
@@ -324,13 +324,16 @@ err_comp:
    free(comp);
 
 err_alloc:
-   ecore_shutdown();
+   if (first_init)
+     {
+        ecore_shutdown();
 
 err_ecore_init:
-   pepper_efl_log_shutdown();
+        pepper_efl_log_shutdown();
 
 err_log_init:
-   PE_FREE_FUNC(_comp_hash, eina_hash_free);
+        PE_FREE_FUNC(_comp_hash, eina_hash_free);
+     }
 
    pthread_mutex_unlock(&_comp_hash_lock);