e_comp_screen: deal with error
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 10 Dec 2024 23:44:52 +0000 (08:44 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Fri, 13 Dec 2024 05:15:52 +0000 (14:15 +0900)
Change-Id: Ie8de62fbf8cc50ccee348683153d09dd3e375a0b

src/bin/compmgr/e_comp_canvas.c
src/bin/e_comp_screen.c

index 610b8916600f43783df297644df198c165a88452..be6c610e986a1342568560b61c5a7414c4b82d68 100644 (file)
@@ -230,9 +230,7 @@ _e_hwc_ecore_evas_init(E_Comp_Screen *e_comp_screen, int w, int y)
         if (!ee)
           e_comp_gl_set(EINA_FALSE);
      }
-
-   /* fallback to framebuffer drm (non-accel) */
-   if (!ee)
+   else
      {
         e_main_ts_begin("\tEE_DRM New");
         ee = ecore_evas_tbm_allocfunc_new("software_tbm",
index 4ebb9428485634e6e37191e0d12f0b2aec02b782..a55ef1e2eb85ebf7713748c5c3a1dcd7b0d8bd77 100644 (file)
@@ -908,7 +908,7 @@ e_comp_screen_init()
      {
         e_main_ts_end("\te_display_init() failed.");
         ERR("e_display_init failed");
-        goto failed_comp_screen;
+        goto failed_display;
      }
    e_main_ts_end("\te_display_init Done");
 
@@ -928,7 +928,7 @@ e_comp_screen_init()
      {
         e_main_ts_end("\tTBM Bufmgr Server Init Failed");
         ERR("tbm_bufmgr_init failed\n");
-        goto failed_comp_screen;
+        goto failed_tbm_bufmgr;
      }
    e_main_ts_end("\tTBM Bufmgr Server Init Done");
 
@@ -951,7 +951,7 @@ e_comp_screen_init()
      {
         e_main_ts_end("\tE_Comp_Canvas Init Failed");
         e_error_message_show(_("Enlightenment cannot initialize outputs!\n"));
-        goto failed_comp_screen;
+        goto failed_comp_canvas;
      }
    e_main_ts_end("\tE_Comp_Canvas Init Done");
 
@@ -965,7 +965,7 @@ e_comp_screen_init()
      {
         e_main_ts_end("\tE_Input Init Failed");
         ERR("Could not initialize the e_input.");
-        goto failed_comp_screen;
+        goto failed_input;
      }
    e_main_ts_end("\tE_Input Init Done");
 
@@ -973,7 +973,7 @@ e_comp_screen_init()
    if (!e_server_init())
      {
         e_main_ts_end("\tE_Server Init Failed");
-        goto failed_comp_screen;
+        goto failed_server;
      }
    e_main_ts_end("\tE_Server Init Done");
 
@@ -987,7 +987,7 @@ e_comp_screen_init()
    if (!_e_comp_screen_screen_policy_setup())
      {
         ERR("fail to setup the screen policy");
-        goto failed_comp_screen;
+        goto failed_policy_setup;
      }
 
    /* pointer */
@@ -1042,12 +1042,21 @@ e_comp_screen_init()
 
    return EINA_TRUE;
 
-failed_comp_screen:
+failed_policy_setup:
+   _e_comp_screen_del(e_comp_screen);
 
+   //TODO:FIXME: deal with removing the resource during policy_setup
+   _e_comp_screen_gl_shutdown(e_comp_screen);
+failed_server:
+   e_server_shutdown();
+failed_input:
    e_input_shutdown();
+failed_comp_canvas:
    e_comp_canvas_clear();
-   if (e_comp_screen->bufmgr) tbm_bufmgr_deinit(e_comp_screen->bufmgr);
-   _e_comp_screen_del(e_comp_screen);
+failed_tbm_bufmgr:
+   if (e_comp_screen->bufmgr)
+     tbm_bufmgr_deinit(e_comp_screen->bufmgr);
+failed_display:
    e_display_shutdown();
 
    return EINA_FALSE;