Summary: | Move tool does not move layer | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | spaceotter <josue> |
Component: | Tools/Move | Assignee: | sh_zam <shzam> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ahab.greybeard, shzam |
Priority: | NOR | ||
Version: | 4.3.0 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Android 8.x | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/8fa2ec84ae7ff6f5945c9f3beecf81e68e7252fb | Version Fixed In: |
Description
spaceotter
2020-06-18 23:58:13 UTC
I can confirm this for 4.3.0 (git 3b71809) running on a Chromebook with Android 9.0. Okay, this is another RTTI bugs. According to the Android's ABI standard this shouldn't happen, but here we are. I have narrowed the bug to `MoveStrokeStrategy::Data` hierarchy, apparently for some reason, the vtable doesn't seem to be emitted. I'll try to get more info about the ``type_info` and try to see if updating the NDK will fix this. Git commit f87e30cae132d4bf5247a765d2fb471a945b2b24 by Boudewijn Rempt, on behalf of Sharaf Zaman. Committed on 03/10/2020 at 08:10. Pushed by szaman into branch 'krita/4.3'. Bugfix: Move tool does not move layer For reasons that I couldn't properly understand. dynamic_cast would fail on Android because the type_info* would point to two separate locations in two separate DSOs. By making a strong symbol, we'll have one and only one location to point to, which fixes the issue. M +5 -0 libs/ui/tool/strokes/move_stroke_strategy.cpp M +1 -3 libs/ui/tool/strokes/move_stroke_strategy.h https://invent.kde.org/graphics/krita/commit/f87e30cae132d4bf5247a765d2fb471a945b2b24 Git commit 70ba74259880de2f7ee06f13268d001d0d1912d1 by Sharaf Zaman. Committed on 05/10/2020 at 17:53. Pushed by szaman into branch 'master'. Bugfix: Move tool does not move layer For reasons that I couldn't properly understand. dynamic_cast would fail on Android because the type_info* would point to two separate locations in two separate DSOs. By making a strong symbol, we'll have one and only one location to point to, which fixes the issue. (cherry picked from commit f87e30cae132d4bf5247a765d2fb471a945b2b24) M +5 -0 libs/ui/tool/strokes/move_stroke_strategy.cpp M +1 -3 libs/ui/tool/strokes/move_stroke_strategy.h https://invent.kde.org/graphics/krita/commit/70ba74259880de2f7ee06f13268d001d0d1912d1 Git commit 8fa2ec84ae7ff6f5945c9f3beecf81e68e7252fb by Dmitry Kazakov, on behalf of Sharaf Zaman. Committed on 06/10/2020 at 11:36. Pushed by dkazakov into branch 'krita/4.4.0'. Bugfix: Move tool does not move layer For reasons that I couldn't properly understand. dynamic_cast would fail on Android because the type_info* would point to two separate locations in two separate DSOs. By making a strong symbol, we'll have one and only one location to point to, which fixes the issue. M +5 -0 libs/ui/tool/strokes/move_stroke_strategy.cpp M +1 -3 libs/ui/tool/strokes/move_stroke_strategy.h https://invent.kde.org/graphics/krita/commit/8fa2ec84ae7ff6f5945c9f3beecf81e68e7252fb |