Review Request 124375: Fix potential endless recursion in PanelView::event() handler
Daniel Vrátil
dvratil at kde.org
Fri Jul 17 12:28:29 UTC 2015
> On July 16, 2015, 4:34 p.m., David Edmundson wrote:
> > Surely all this patch will do is change it from infinitely recursing to 100% CPU busy looping in each event loop?
> > I don't see how that's much better?
With the event handling going through the event loop there is a high chance that you eventually move the mouse to a place that the code stops emitting the event further. With recursive event handling you get stack overflow and crash sooner or later. So yes, it's not perfect, but it solves a potential crash.
- Daniel
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124375/#review82572
-----------------------------------------------------------
On July 16, 2015, 3:48 p.m., Daniel Vrátil wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124375/
> -----------------------------------------------------------
>
> (Updated July 16, 2015, 3:48 p.m.)
>
>
> Review request for Plasma.
>
>
> Repository: plasma-workspace
>
>
> Description
> -------
>
> `PanelView::event()` generates new events for itself and dispatches them via `QCoreApplication::sendEvent()`, which calls the handler directly. This can lead to endless recursion. This patch changes the handler to use `QCoreApplication::postEvent()` instead to enqueue the new event and dispatch it from `QEventLoop` after the current `PanelView::event()` returns.
>
> Downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=1226644
>
>
> Diffs
> -----
>
> shell/panelview.cpp b94673d
>
> Diff: https://git.reviewboard.kde.org/r/124375/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Daniel Vrátil
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20150717/8b499891/attachment.html>
More information about the Plasma-devel
mailing list