Skip to content

TizenViewBase: Remove TizenViewType enum and GetType()#16

Merged
JSUYA merged 5 commits intoflutter-tizen:masterfrom
JSUYA:dev/remove_view_type
Jan 4, 2023
Merged

TizenViewBase: Remove TizenViewType enum and GetType()#16
JSUYA merged 5 commits intoflutter-tizen:masterfrom
JSUYA:dev/remove_view_type

Conversation

@JSUYA
Copy link
Copy Markdown
Member

@JSUYA JSUYA commented Dec 13, 2022

The embedder does not require a type for the class because -rtti option is enabled.
So, remove the type enum and the getter method.

Copy link
Copy Markdown
Member

@swift-kim swift-kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the work.

Actually the use of RTTI is against the style guide as we discussed before but I think the new code is still better than what it used to be (a hand-implemented RTTI-like workaround).

Comment thread flutter/shell/platform/tizen/flutter_tizen_view.cc
Comment thread flutter/shell/platform/tizen/flutter_tizen_view.cc
Comment thread flutter/shell/platform/tizen/channels/platform_channel.cc Outdated
The embedder does not require a type for the class
because -rtti option is enabled.
So, remove the type enum and the getter method.
@JSUYA JSUYA force-pushed the dev/remove_view_type branch from b8b34b1 to 6b473ce Compare December 30, 2022 05:46
Comment thread flutter/shell/platform/tizen/flutter_tizen.cc Outdated
@JSUYA JSUYA force-pushed the dev/remove_view_type branch from 2ae1899 to 9d9c3f2 Compare January 4, 2023 09:32
@JSUYA JSUYA merged commit 8cf66d2 into flutter-tizen:master Jan 4, 2023
@JSUYA JSUYA deleted the dev/remove_view_type branch March 6, 2026 08:01
JSUYA added a commit to JSUYA/embedder that referenced this pull request Mar 6, 2026
Based on BT, two issues can be expected.
First, a problem could occur in vconf when calling the setting getter while the system is not fully initialized. Alternatively, a deadlock could occur on the same conf when calling the setting getter after registering the changed callback.

Since this issue did not occur after a reboot or subsequent routines, it is likely a timing issue due to the callback rather than an initialization issue. Therefore, the problem can be prevented by calling the setting getter before registering the changed callback.

```
crash dump

 (gdb) bt
 #0  0x0000ffff94a13524 in __GI___poll (fds=0xfffff49d3830, nfds=1,
     timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
 #1  0x0000ffff938f44e8 in ?? () from /lib64/libbuxton2.so.1
 flutter-tizen#2  0x0000ffff938f6ac0 in buxton_get_value_sync () from /lib64/libbuxton2.so.1
 flutter-tizen#3  0x0000ffff93703af8 in ?? () from /lib64/libvconf.so.0
 flutter-tizen#4  0x0000ffff937052c4 in vconf_get_int () from /lib64/libvconf.so.0
 flutter-tizen#5  0x0000ffff8c1b9604 in ?? () from /lib64/libcapi-system-system-settings.so.0
 flutter-tizen#6  0x0000ffff8c1b390c in system_settings_get_value_int ()
    from /lib64/libcapi-system-system-settings.so.0
 flutter-tizen#7  0x0000ffff8c2ec3d0 in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#8  0x0000ffff8c2ec330 in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#9  0x0000ffff8c2f538c in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#10 0x0000ffff8c2f3d70 in FlutterDesktopViewCreateFromNewWindow ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#11 0x0000ffff94fd8ff4 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#12 0x0000ffff94fd8df0 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#13 0x0000ffff918b3df8 in ?? () from /usr/lib64/libcapi-appfw-application.so.0
 flutter-tizen#14 0x0000ffff919efc6c in tizen_cpp::AppCoreBase::Init(int, char**) ()
    from /lib64/libapp-core-cpp.so.1
 flutter-tizen#15 0x0000ffff919efd24 in tizen_cpp::AppCoreBase::Run(int, char**) ()
    from /lib64/libapp-core-cpp.so.1
 flutter-tizen#16 0x0000ffff91a34bdc in tizen_cpp::AppCoreUiBase::DoRun(int, char**) ()
    from /lib64/libapp-core-ui-cpp.so.1
 flutter-tizen#17 0x0000ffff91a34f4c in tizen_cpp::AppCoreUiBase::Impl::Run(int, char**) ()
    from /lib64/libapp-core-ui-cpp.so.1
 flutter-tizen#18 0x0000ffff918b3fa8 in ui_app_main ()
    from /usr/lib64/libcapi-appfw-application.so.0
 flutter-tizen#19 0x0000ffff94fd93a0 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#20 0x0000ffff94fd8a8c in main ()
    from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#21 0x0000aaaae7065bac in launchpad::loader::LaunchpadLoader::OnTerminate(int, char**) ()
 flutter-tizen#22 0x0000ffff94e2a030 in launchpad_loader_main ()
    from /lib64/liblaunchpad.so.0
 flutter-tizen#23 0x0000aaaae7063b58 in launchpad::loader::LaunchpadLoader::Run() ()
 flutter-tizen#24 0x0000aaaae7063500 in main ()
```
JSUYA added a commit to JSUYA/embedder that referenced this pull request Mar 6, 2026
Based on BT, two issues can be expected.
First, a problem could occur in vconf when calling the setting getter while the system is not fully initialized. Alternatively, a deadlock could occur on the same conf when calling the setting getter after registering the changed callback.

Since this issue did not occur after a reboot or subsequent routines, it is likely a timing issue due to the callback rather than an initialization issue. Therefore, the problem can be prevented by calling the setting getter before registering the changed callback.

```
crash dump

 (gdb) bt
 #0  0x0000ffff94a13524 in __GI___poll (fds=0xfffff49d3830, nfds=1,
     timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
 #1  0x0000ffff938f44e8 in ?? () from /lib64/libbuxton2.so.1
 flutter-tizen#2  0x0000ffff938f6ac0 in buxton_get_value_sync () from /lib64/libbuxton2.so.1
 flutter-tizen#3  0x0000ffff93703af8 in ?? () from /lib64/libvconf.so.0
 flutter-tizen#4  0x0000ffff937052c4 in vconf_get_int () from /lib64/libvconf.so.0
 flutter-tizen#5  0x0000ffff8c1b9604 in ?? () from /lib64/libcapi-system-system-settings.so.0
 flutter-tizen#6  0x0000ffff8c1b390c in system_settings_get_value_int ()
    from /lib64/libcapi-system-system-settings.so.0
 flutter-tizen#7  0x0000ffff8c2ec3d0 in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#8  0x0000ffff8c2ec330 in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#9  0x0000ffff8c2f538c in ?? ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#10 0x0000ffff8c2f3d70 in FlutterDesktopViewCreateFromNewWindow ()
    from /usr/apps/org.tizen.homescreen/bin/../lib/libflutter_tizen_common.so
 flutter-tizen#11 0x0000ffff94fd8ff4 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#12 0x0000ffff94fd8df0 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#13 0x0000ffff918b3df8 in ?? () from /usr/lib64/libcapi-appfw-application.so.0
 flutter-tizen#14 0x0000ffff919efc6c in tizen_cpp::AppCoreBase::Init(int, char**) ()
    from /lib64/libapp-core-cpp.so.1
 flutter-tizen#15 0x0000ffff919efd24 in tizen_cpp::AppCoreBase::Run(int, char**) ()
    from /lib64/libapp-core-cpp.so.1
 flutter-tizen#16 0x0000ffff91a34bdc in tizen_cpp::AppCoreUiBase::DoRun(int, char**) ()
    from /lib64/libapp-core-ui-cpp.so.1
 flutter-tizen#17 0x0000ffff91a34f4c in tizen_cpp::AppCoreUiBase::Impl::Run(int, char**) ()
    from /lib64/libapp-core-ui-cpp.so.1
 flutter-tizen#18 0x0000ffff918b3fa8 in ui_app_main ()
    from /usr/lib64/libcapi-appfw-application.so.0
 flutter-tizen#19 0x0000ffff94fd93a0 in ?? () from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#20 0x0000ffff94fd8a8c in main ()
    from /usr/apps/org.tizen.homescreen/bin/runner
 flutter-tizen#21 0x0000aaaae7065bac in launchpad::loader::LaunchpadLoader::OnTerminate(int, char**) ()
 flutter-tizen#22 0x0000ffff94e2a030 in launchpad_loader_main ()
    from /lib64/liblaunchpad.so.0
 flutter-tizen#23 0x0000aaaae7063b58 in launchpad::loader::LaunchpadLoader::Run() ()
 flutter-tizen#24 0x0000aaaae7063500 in main ()
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants