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 |
|