Systemd/coccinelle
Lennart Poettering ae2a15bc14 macro: introduce TAKE_PTR() macro
This macro will read a pointer of any type, return it, and set the
pointer to NULL. This is useful as an explicit concept of passing
ownership of a memory area between pointers.

This takes inspiration from Rust:

https://doc.rust-lang.org/std/option/enum.Option.html#method.take

and was suggested by Alan Jenkins (@sourcejedi).

It drops ~160 lines of code from our codebase, which makes me like it.
Also, I think it clarifies passing of ownership, and thus helps
readability a bit (at least for the initiated who know the new macro)
2018-03-22 20:21:42 +01:00
..
close-above-stdio.cocci util: add new safe_close_above_stdio() wrapper 2018-02-28 10:00:50 +01:00
const-strlen.cocci tree-wide: make use of new STRLEN() macro everywhere (#7639) 2017-12-14 19:02:29 +01:00
debug-logging.cocci tree-wide: add DEBUG_LOGGING macro that checks whether debug logging is on (#7645) 2017-12-15 11:09:00 +01:00
div-round-up.cocci coccinelle: make use of DIV_ROUND_UP() wherever appropriate 2018-03-20 20:59:02 +01:00
dup-fcntl.cocci coccinelle: always use fcntl(fd, FD_DUPFD, 3) instead of dup(fd) 2018-03-20 22:31:14 +01:00
empty-to-null.cocci core: use empty_to_null() where we can 2017-12-07 12:13:00 +01:00
enotsup.cocci cocci: there's not ENOTSUP, there's only EOPNOTSUPP 2018-01-11 15:12:16 +01:00
equals-null.cocci tree-wide: drop a few == NULL and != NULL comparison 2017-12-11 16:05:40 +01:00
errno.cocci coccinelle: additional errno.cocci hunk 2015-11-09 20:01:06 +01:00
exit-0.cocci tree-wide: use EXIT_SUCCESS/EXIT_FAILURE in exit() where we can 2017-12-25 11:48:21 +01:00
free_and_replace.cocci tree-wide: introduce free_and_replace helper 2016-10-16 23:35:39 -04:00
hashmap_free.cocci tree-wide: take benefit of the fact that hashmap_free() returns NULL 2015-09-09 23:12:07 +02:00
htonl.cocci tree-wide: htonl() is weird, let's use htobe32() instead (#3538) 2016-06-15 01:26:01 +02:00
in_set.cocci coccinelle: fix IN_SET/!IN_SET scripts, and apply some changes it found 2017-11-29 20:12:26 +01:00
isempty.cocci coccinelle: beef up isempty() checks (#7729) 2017-12-23 08:47:55 +01:00
malloc_multiply.cocci coccinelle: similar to reallocarray() let's also systematically use malloc_multiply() 2018-03-02 12:39:07 +01:00
memzero.cocci coccinelle: automatically rewrite memset() to zero() or memzero() where we can 2017-12-14 19:47:46 +01:00
mfree.cocci tree-wide: use coccinelle to patch a lot of code to use mfree() 2015-09-09 08:19:27 +02:00
mfree_return.cocci tree-wide: use mfree more 2016-10-16 23:35:39 -04:00
no-if-assignments.cocci tree-wide: don't do assignments within if checks 2015-09-09 08:20:20 +02:00
not_in_set.cocci coccinelle: fix IN_SET/!IN_SET scripts, and apply some changes it found 2017-11-29 20:12:26 +01:00
o-ndelay.occi coccinelle: O_NDELAY → O_NONBLOCK 2018-01-24 11:09:29 +01:00
reallocarray.cocci coccinelle: add reallocarray() coccinelle script 2018-03-02 12:39:07 +01:00
run-coccinelle.sh coccinelle: slightly improve run-coccinelle.sh 2018-02-28 10:01:15 +01:00
safe_close-no-if.cocci tree-wide: drop redundant if checks before safe_close() 2015-09-09 08:20:19 +02:00
safe_close.cocci tree-wide: make more code use safe_close() 2015-09-09 08:20:19 +02:00
safe_closedir.cocci util: add safe_closedir() similar to safe_fclose() 2015-09-22 16:30:24 +02:00
safe_fclose.cocci util: introduce safe_fclose() and port everything over to it 2015-09-09 15:26:11 +02:00
strempty.cocci cocci: use strempty() at more places 2018-01-10 17:11:19 +01:00
strjoin.cocci tree-wide: drop NULL sentinel from strjoin 2016-10-23 11:43:27 -04:00
strjoina.cocci tree-wide: remove useless NULLs from strjoina 2016-04-13 08:56:44 -04:00
strv_free.cocci tree-wide: make use of the fact that strv_free() returns NULL 2015-09-09 23:05:58 +02:00
take-ptr.cocci macro: introduce TAKE_PTR() macro 2018-03-22 20:21:42 +01:00
while-true.cocci tree-wide: replace while(1) by for(;;) everywhere 2015-09-09 14:59:53 +02:00
xsprintf.cocci tree-wide: use xsprintf() where applicable 2016-01-12 15:36:32 +01:00