]> git.eshelyaron.com Git - emacs.git/commitdiff
Add ATTRIBUTE_DEALLOC to extern functions
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 27 May 2022 18:27:08 +0000 (11:27 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 27 May 2022 18:45:01 +0000 (11:45 -0700)
This can help static checking.  It’s not as important for static
functions, where GCC can figure this stuff out own its own.
* src/sysstdio.h (emacs_fopen): Add ATTRIBUTE_DEALLOC (fclose, 1).
* src/tparam.h (tparam): Add ATTRIBUTE_DEALLOC_FREE.
Include stdlib.h so that ‘free’ is declared.
* src/xterm.h (x_get_atom_name): Add ATTRIBUTE_DEALLOC_FREE.

src/sysstdio.h
src/tparam.h
src/xterm.h

index 727a466be527a7073258ad1e7f41674d70315511..efedc3e450b273e28be233bfc64a7d359a8fccbc 100644 (file)
@@ -28,7 +28,8 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include <attribute.h>
 #include <unlocked-io.h>
 
-extern FILE *emacs_fopen (char const *, char const *) ATTRIBUTE_MALLOC;
+extern FILE *emacs_fopen (char const *, char const *)
+  ATTRIBUTE_MALLOC ATTRIBUTE_DEALLOC (fclose, 1);
 extern void errputc (int);
 extern void errwrite (void const *, ptrdiff_t);
 extern void close_output_streams (void);
index 653f01bdde0d04c54051d588642a38126513e31a..4f4bdc8820f6b66f4c4ddabb6cca326994f86414 100644 (file)
@@ -20,6 +20,8 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #ifndef EMACS_TPARAM_H
 #define EMACS_TPARAM_H
 
+#include <stdlib.h>
+
 #include <attribute.h>
 
 /* Don't try to include termcap.h.  On some systems, configure finds a
@@ -32,7 +34,8 @@ int tgetnum (const char *);
 char *tgetstr (const char *, char **);
 char *tgoto (const char *, int, int);
 
-char *tparam (const char *, char *, int, int, int, int, int) ATTRIBUTE_MALLOC;
+char *tparam (const char *, char *, int, int, int, int, int)
+  ATTRIBUTE_MALLOC ATTRIBUTE_DEALLOC_FREE;
 
 extern char PC;
 extern char *BC;
index 329fa4c84f6bf4ef6910a5089bdd0d9929845c37..283d4fa9b115b566feea2c88def661003a45095d 100644 (file)
@@ -1542,7 +1542,7 @@ extern void x_own_selection (Lisp_Object, Lisp_Object, Lisp_Object);
 extern Atom x_intern_cached_atom (struct x_display_info *, const char *,
                                  bool);
 extern char *x_get_atom_name (struct x_display_info *, Atom, bool *)
-  ATTRIBUTE_MALLOC;
+  ATTRIBUTE_MALLOC ATTRIBUTE_DEALLOC_FREE;
 
 #ifdef USE_GTK
 extern bool xg_set_icon (struct frame *, Lisp_Object);