Messages in this thread | | | Date | Fri, 15 Feb 2019 14:02:05 +0100 (CET) | From | Julia Lawall <> | Subject | Re: [PATCH v5] Coccinelle: semantic code search for missing put_device() |
| |
On Fri, 15 Feb 2019, Markus Elfring wrote:
> > +@search exists@ > > +local idexpression id; > > +expression x,e,e1; > > +position p1,p2; > > +type T,T1,T2,T3; > > +@@ > > + > > +id = of_find_device_by_node@p1(x) > > +... when != e = id > > +if (id == NULL || ...) { ... return ...; } > > +... when != put_device(&id->dev) > … > > + when != if (id) { ... put_device(&id->dev) ... } > … > > I would interpret this SmPL code in the way that the if statement > for the pointer check is “optional” in this line. > Is it an extra and redundant SmPL specification when the reference > release function could eventually be found just anywhere within > an implementation?
The proposed when code is correct. It is not redundant, because it checks for a particular control-flow pattern.
julia
> > > Will a need evolve to develop a similar source code search approach > for safer resource management with other function combinations? > > Regards, > Markus >
| |