There are many functions that take ownership of the I/O buffer they
are passed as a parameter. The caller should not retain a pointer to
the I/O buffer. Use iob_disown() to automatically nullify the
caller's pointer, e.g.:
xfer_deliver_iob ( xfer, iob_disown ( iobuf ) );
This will ensure that iobuf is set to NULL for any code after the call
to xfer_deliver_iob().
iob_disown() is currently used only in places where it simplifies the
code, by avoiding an extra line explicitly setting the I/O buffer
pointer to NULL. It should ideally be used with each call to any
function that takes ownership of an I/O buffer. (The SSA
optimisations will ensure that use of iob_disown() gets optimised away
in cases where the caller makes no further use of the I/O buffer
pointer anyway.)
If gcc ever introduces an __attribute__((free)), indicating that use
of a function argument after a function call should generate a
warning, then we should use this to identify all applicable function
call sites, and add iob_disown() as necessary.
tags/v0.9.7
|
|
||
| 482 |
|
482 |
|
| 483 |
|
483 |
|
| 484 |
|
484 |
|
| 485 |
|
|
|
| 486 |
|
|
|
|
485 |
|
|
| 487 |
|
486 |
|
| 488 |
|
487 |
|
| 489 |
|
488 |
|
|
|
||
| 199 |
|
199 |
|
| 200 |
|
200 |
|
| 201 |
|
201 |
|
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
|
205 |
|
|
|
206 |
|
|
|
207 |
|
|
|
208 |
|
|
|
209 |
|
|
|
210 |
|
|
|
211 |
|
|
|
212 |
|
|
|
213 |
|
|
|
214 |
|
|
|
215 |
|
|
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
| 202 |
|
222 |
|
| 203 |
|
223 |
|
| 204 |
|
224 |
|
|
|
||
| 602 |
|
602 |
|
| 603 |
|
603 |
|
| 604 |
|
604 |
|
| 605 |
|
|
|
|
605 |
|
|
| 606 |
|
606 |
|
| 607 |
|
607 |
|
| 608 |
|
|
|
| 609 |
|
608 |
|
| 610 |
|
609 |
|
| 611 |
|
610 |
|
|
|
||
| 265 |
|
265 |
|
| 266 |
|
266 |
|
| 267 |
|
267 |
|
| 268 |
|
|
|
| 269 |
|
|
|
|
268 |
|
|
|
269 |
|
|
| 270 |
|
270 |
|
| 271 |
|
271 |
|
| 272 |
|
272 |
|
|
|
||
| 340 |
|
340 |
|
| 341 |
|
341 |
|
| 342 |
|
342 |
|
| 343 |
|
|
|
| 344 |
|
|
|
|
343 |
|
|
| 345 |
|
344 |
|
| 346 |
|
345 |
|
| 347 |
|
346 |
|
|
|
||
| 328 |
|
328 |
|
| 329 |
|
329 |
|
| 330 |
|
330 |
|
| 331 |
|
|
|
| 332 |
|
|
|
|
331 |
|
|
| 333 |
|
332 |
|
| 334 |
|
333 |
|
| 335 |
|
334 |
|
|
|
||
| 976 |
|
976 |
|
| 977 |
|
977 |
|
| 978 |
|
978 |
|
| 979 |
|
|
|
| 980 |
|
|
|
| 981 |
|
|
|
|
979 |
|
|
|
980 |
|
|
| 982 |
|
981 |
|
| 983 |
|
982 |
|
| 984 |
|
983 |
|
|
|
||
| 763 |
|
763 |
|
| 764 |
|
764 |
|
| 765 |
|
765 |
|
| 766 |
|
|
|
| 767 |
|
|
|
| 768 |
|
|
|
|
766 |
|
|
|
767 |
|
|
| 769 |
|
768 |
|
| 770 |
|
769 |
|
| 771 |
|
770 |
|
|
|
||
| 887 |
|
886 |
|
| 888 |
|
887 |
|
| 889 |
|
888 |
|
| 890 |
|
|
|
| 891 |
|
|
|
|
889 |
|
|
| 892 |
|
890 |
|
| 893 |
|
891 |
|
| 894 |
|
892 |
|