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 >