Review Request 129994: Fix AppMenuApplet Called C++ object pointer is null

Leslie Zhai xiangzhai83 at gmail.com
Wed Mar 8 02:18:36 UTC 2017



> On 三月 7, 2017, 7:45 p.m., Kai Uwe Broulik wrote:
> > applets/appmenu/lib/appmenuapplet.cpp, line 167
> > <https://git.reviewboard.kde.org/r/129994/diff/1/?file=492314#file492314line167>
> >
> >     Prefer !ctx instead of comparing with nullptr
> >     
> >     Also, could you move the check up a bit so we don't do unneccessary work, ie.
> >     
> >         if (m_currentIndex == idx) {
> >             return;
> >         }
> >         
> >         if (!ctx || !ctx->window() ....) {
> >             return;
> >         }
> >         
> >         QMenu *actionMenu = createMenu(idx);

Hi Kai,

Why use nullptr everywhere? it is my understanding http://www.leetcode.cn/2017/02/use-nullptr-everywhere.html please point out my fault, thanks!

Regards,
Leslie Zhai


- Leslie


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129994/#review102749
-----------------------------------------------------------


On 三月 8, 2017, 10:17 a.m., Leslie Zhai wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129994/
> -----------------------------------------------------------
> 
> (Updated 三月 8, 2017, 10:17 a.m.)
> 
> 
> Review request for Plasma, Kai Uwe Broulik and David Edmundson.
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> Hi KDE developer,
> 
> Bug reported by the clang static analyzer.
> 
> Description: Called C++ object pointer is null
> File: plasma-workspace/applets/appmenu/lib/appmenuapplet.cpp
> Line: 167
> 
> ```
> 153	void AppMenuApplet::trigger(QQuickItem *ctx, int idx)
> 154	{
> 155	    if (m_currentIndex == idx) {
> 
> Taking false branch	
> ?
> 156	        return;
> 157	    }
> 158	 
> 159	    QMenu *actionMenu = createMenu(idx);
> 160	    if (actionMenu) {
> 
> ?
> Assuming 'actionMenu' is non-null	
> ?
> 
> ?
> Taking true branch	
> ?
> 161	 
> 162	        if (ctx && ctx->window() && ctx->window()->mouseGrabberItem()) {
> 4
> ?
> Assuming 'ctx' is null	
> ?
> 163	            // FIXME event forge thing enters press and hold move mode :/
> 164	            ctx->window()->mouseGrabberItem()->ungrabMouse();
> 165	        }
> 166	 
> 167	        const auto &geo = ctx->window()->screen()->availableVirtualGeometry();
> 5
> ?
> Called C++ object pointer is null
> ```
> 
> So I simply add some checker for ctx, ctx->window() and ctx->window()->screen() pointers.
> 
> Regards,
> Leslie Zhai
> 
> 
> Diffs
> -----
> 
>   applets/appmenu/lib/appmenuapplet.cpp 9aaf5cc6 
> 
> Diff: https://git.reviewboard.kde.org/r/129994/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Leslie Zhai
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170308/4ce740f7/attachment-0001.html>


More information about the Plasma-devel mailing list