surface_view: Remove assert and return null for invalid case 82/321782/1
authorSeunghun Lee <shiin.lee@samsung.com>
Fri, 28 Mar 2025 03:13:39 +0000 (12:13 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 28 Mar 2025 06:19:14 +0000 (15:19 +0900)
It turns out that E_Client for launchscreen can be used for surface.
We discovered this while testing splash functionality with
e_tizen_unittests:

```
$ e_tizen_unittests --gtest_filter=etTestSplash*
```

We cannot reuse this launchscreen E_Client for the newly created
surface.

Change-Id: I6e9787acd177f87ff1b4c99b6b5aeba260bd459a

src/bin/server/e_surface_view.c

index e1f7e80217e55d7bca5f5b2cc285b8c2599c06fc..8664ee64798e89ddcedd074b6d09f97fcffc7547 100644 (file)
@@ -243,7 +243,11 @@ _launchscreen_ec_find(struct wl_resource *surface_resource)
    if (!launchscreen_ec)
      return NULL;
 
-   assert(launchscreen_ec->comp_data == NULL);
+   if (e_surface_try_from_ec(launchscreen_ec))
+     {
+        ESV_INF("The launchscreen ec is already used for another surface view.", launchscreen_ec);
+        return NULL;
+     }
 
    e_comp_launchscrn_ec_remove(launchscreen_ec);