[Differential] [Commented On] D3706: WIP: Global Menu Applet
davidedmundson (David Edmundson)
noreply at phabricator.kde.org
Mon Dec 19 23:33:25 UTC 2016
davidedmundson added inline comments.
INLINE COMMENTS
> davidedmundson wrote in appmenumodel.cpp:85
> If you return here you have an unmatching begin/remove
Turns out this is what was causing that kate->konsole crash.
I should have trusted my reviewing instead of spending some time in valgrind...
The UI is left without updating, but we've cleared m_activeMenu.
The model has the actions stored in this casted pointer, but because QQmlEngine doesn't know it's a QObject doesn't reset it. ::trigger uses the action object with now a dangling pointer.
Just remove this if statement, the for loop with no actions will do nothing anyway, so we're not saving any processing.
> appmenumodel.cpp:89
> + for (QAction *action : actions) {
> + qint64 data = reinterpret_cast<qint64>(action);
> + m_activeActions.append(data);
We can't do this!
For one thing, every 32 bit system will pad the first half of this copy with garbage.
We can either register QAction as an uncreatable QML type; or just box in QVariant<QObject*> and pass QVariant as arguments to ::trigger
REPOSITORY
R120 Plasma Workspace
REVISION DETAIL
https://phabricator.kde.org/D3706
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: chinmoyr, #plasma, broulik
Cc: davidedmundson, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20161219/2707f9e6/attachment.html>
More information about the Plasma-devel
mailing list