summaryrefslogtreecommitdiff
path: root/coccinelle/free_and_replace.cocci
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-16 19:23:35 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-16 23:35:39 -0400
commit3b319885c4febb5f7ea9b5ab31c3395548ed6886 (patch)
treea342cd060e144ed447ecd43b22a7b87068070170 /coccinelle/free_and_replace.cocci
parent6b430fdb7c0c2c52ea69a7d56f23d739218b13d0 (diff)
tree-wide: introduce free_and_replace helper
It's a common pattern, so add a helper for it. A macro is necessary because a function that takes a pointer to a pointer would be type specific, similarly to cleanup functions. Seems better to use a macro.
Diffstat (limited to 'coccinelle/free_and_replace.cocci')
-rw-r--r--coccinelle/free_and_replace.cocci15
1 files changed, 15 insertions, 0 deletions
diff --git a/coccinelle/free_and_replace.cocci b/coccinelle/free_and_replace.cocci
new file mode 100644
index 0000000000..9dcdbf4d42
--- /dev/null
+++ b/coccinelle/free_and_replace.cocci
@@ -0,0 +1,15 @@
+@@
+expression p, q;
+@@
+- free(p);
+- p = q;
+- q = NULL;
+- return 0;
++ return free_and_replace(p, q);
+@@
+expression p, q;
+@@
+- free(p);
+- p = q;
+- q = NULL;
++ free_and_replace(p, q);