From: Dmitry Antipov Date: Sun, 24 Jun 2012 16:18:41 +0000 (+0400) Subject: First Coccinelle semantic patch. X-Git-Tag: emacs-24.2.90~1199^2~368 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3c9359dfe479a7fa1b161ad86afe571f66b23617;p=emacs.git First Coccinelle semantic patch. * coccinelle: New subdirectory * coccinelle/README: Documentation stub. * coccinelle/vector_contents.cocci: Semantic patch to replace direct access to `contents' member of Lisp_Vector objects with AREF and ASET where appropriate. --- diff --git a/admin/ChangeLog b/admin/ChangeLog index ec6448dbeee..44856f4b449 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog @@ -1,3 +1,12 @@ +2012-06-24 Dmitry Antipov + + First Coccinelle semantic patch. + * coccinelle: New subdirectory + * coccinelle/README: Documentation stub. + * coccinelle/vector_contents.cocci: Semantic patch to replace direct + access to `contents' member of Lisp_Vector objects with AREF and ASET + where appropriate. + 2012-06-22 Paul Eggert Support higher-resolution time stamps (Bug#9000). diff --git a/admin/coccinelle/README b/admin/coccinelle/README new file mode 100644 index 00000000000..48a88dbc8d8 --- /dev/null +++ b/admin/coccinelle/README @@ -0,0 +1,3 @@ +This directory contains semantic patches for Coccinelle, a program matching +and transformation tool for programs written in C. For more details, see +http://coccinelle.lip6.fr. diff --git a/admin/coccinelle/vector_contents.cocci b/admin/coccinelle/vector_contents.cocci new file mode 100644 index 00000000000..beebc2d2089 --- /dev/null +++ b/admin/coccinelle/vector_contents.cocci @@ -0,0 +1,16 @@ +// Avoid direct access to `contents' member of +// Lisp_Vector, use AREF and ASET where possible. +@expression@ +identifier I1, I2; +expression E1, E2; +@@ +( +- XVECTOR (I1)->contents[I2++] = E1 ++ ASET (I1, I2, E1), I2++ +| +- XVECTOR (I1)->contents[E1] = E2 ++ ASET (I1, E1, E2) +| +-XVECTOR (I1)->contents[E1] ++AREF (I1, E1) +)