e_policy_desk: return policy_desk after create 80/325180/1
authorJunseok Kim <juns.kim@samsung.com>
Wed, 14 May 2025 00:57:12 +0000 (09:57 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 4 Jun 2025 06:55:56 +0000 (15:55 +0900)
Change-Id: I1c8129f289ebb210c57c0de42da76801b858d8e5

src/bin/windowmgr/e_policy_desk.c
src/bin/windowmgr/e_policy_desk_intern.h

index e30d1003f781e0b5bda686620a369e5ce82a9633..b8653a700d592ca339af486cb550b3a10c12af53 100644 (file)
@@ -1874,7 +1874,7 @@ e_policy_desk_view_tree_get(E_Policy_Desk *pd)
    return e_policy_container_view_tree_get(container);
 }
 
-EINTERN void
+EINTERN E_Policy_Desk *
 e_policy_desk_new(E_Desk *desk)
 {
    E_Policy_Zone *policy_zone;
@@ -1885,13 +1885,17 @@ e_policy_desk_new(E_Desk *desk)
    char name[40] = {0,};
 
    pd = eina_hash_find(hash_policy_desks, &desk);
-   if (pd) return;
+   if (pd) return pd;
 
    zone = desk->zone;
    policy_zone = e_policy_zone_get(zone);
 
    pd = E_NEW(E_Policy_Desk, 1);
-   if (!pd) return;
+   if (!pd)
+     {
+        ERR("Failed to alloc policy desk of desk(ID:%d):%p", desk->id, desk);
+        return NULL;
+     }
 
    ELOGF("POL_DESK", "Policy desk NEW. from zone(ID:%d):%p, policy_zone:%p, desk:%p, policy desk:%p", NULL, zone?zone->id:-1, zone, policy_zone, desk, pd);
 
@@ -1899,7 +1903,7 @@ e_policy_desk_new(E_Desk *desk)
      {
         ERR("Failed to init view tree of desk(ID:%d):%p", desk->id, desk);
         E_FREE(pd);
-        return;
+        return NULL;
      }
 
    /* init smart object */
@@ -1913,9 +1917,10 @@ e_policy_desk_new(E_Desk *desk)
                                                desk->geom.x, desk->geom.y, desk->geom.w, desk->geom.h);
    if (!desk->desk_area.base)
      {
+        ERR("Failed to create base desk area of desk(ID:%d):%p", desk->id, desk);
         e_object_del(E_OBJECT(desk));
         E_FREE(pd);
-        return;
+        return NULL;
      }
 
    pd->desk = desk;
@@ -1991,6 +1996,8 @@ e_policy_desk_new(E_Desk *desk)
    e_desk_client_visible_above_get_listener_add(pd->desk, &pd->client_visible_above_get);
    pd->client_visible_below_get.notify = _e_policy_desk_cb_client_visible_below_get;
    e_desk_client_visible_below_get_listener_add(pd->desk, &pd->client_visible_below_get);
+
+   return pd;
 }
 
 EINTERN void
index bd3a9dcb1f5b0ccab9ae8769027ca390d4e7419f..ce5eb7c989b3c3911a156ffd3cad95ceb91806fd 100644 (file)
@@ -13,7 +13,7 @@ extern EINTERN E_View_Tree_Impl desk_tree_impl;
 
 EINTERN E_View_Tree   *e_policy_desk_view_tree_get(E_Policy_Desk *pd);
 
-EINTERN void           e_policy_desk_new(E_Desk *desk);
+EINTERN E_Policy_Desk *e_policy_desk_new(E_Desk *desk);
 EINTERN void           e_policy_desk_del(E_Policy_Desk *pd);
 EINTERN E_Policy_Desk *e_policy_desk_get(E_Desk *desk);
 EINTERN void           e_policy_desk_init(void);