Mercurial > hg > xemacs-beta
annotate src/inline.c @ 4843:715b15990d0a
add more foo_checking_assert macros
lisp.h: Add structure_checking_assert(), gc_checking_assert(), etc. for
all types of error-checking. Also FOO_checking_assert_with_message()
and inline_FOO_checking_assert() -- the latter for use in an inline
function where you want the calling function's line/file to be reported
(requires some conspiracy with the function itself).
Add disabled_assert(), disabled_assert_at_line(),
disabled_assert_with_message(), for what to do when an assert is
disabled. Formerly, we used to do ((void) 0), but now we do
((void) x), so the variable appears used and any side effects of the
expression do get done. In Unicode-internal, the standard assert()
uses this, but not yet in this workspace.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Wed, 13 Jan 2010 03:01:43 -0600 |
parents | 8f1ee2d15784 |
children | a6c778975d7d e0db3c197671 |
rev | line source |
---|---|
428 | 1 /* Repository for inline functions |
2 Copyright (C) 1995 Sun Microsystems, Inc. | |
3 | |
4 This file is part of XEmacs. | |
5 | |
6 XEmacs is free software; you can redistribute it and/or modify it | |
7 under the terms of the GNU General Public License as published by the | |
8 Free Software Foundation; either version 2, or (at your option) any | |
9 later version. | |
10 | |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with XEmacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
19 Boston, MA 02111-1307, USA. */ | |
20 | |
21 /* Synched up with: Not in FSF. */ | |
22 | |
23 /* The purpose of this file is so that there is at least one actual | |
24 definition of each inline function. This is needed under GCC. The | |
442 | 25 reason is that under GCC we declare our inline functions `inline |
26 extern', which causes the inlined version to get used only for | |
428 | 27 inlining, and in other cases to generate an external reference to |
28 the function. This is more efficient than declaring our inline | |
442 | 29 functions `inline static', which (in many cases) would cause a separate |
428 | 30 version of the function to get inserted into every source file that |
442 | 31 included the corresponding header file. See internals.texi. |
428 | 32 |
33 Some compilers that recognize `inline' may not do the same | |
442 | 34 `inline extern' business, so on those we just do `inline static'. |
428 | 35 */ |
36 | |
37 /* Note to maintainers: This file contains a list of all header files | |
38 that use the INLINE macro, either directly, or by using DECLARE_LRECORD. | |
442 | 39 i.e. the output of ``grep -l -w 'DECLARE_LRECORD|INLINE_HEADER' *.h'' */ |
428 | 40 |
442 | 41 #define DONT_EXTERN_INLINE_HEADER_FUNCTIONS |
428 | 42 |
43 #include <config.h> | |
44 #include "lisp.h" | |
859 | 45 |
46 #include "sysfile.h" | |
47 | |
428 | 48 #include "buffer.h" |
49 #include "bytecode.h" | |
446 | 50 #include "casetab.h" |
428 | 51 #include "chartab.h" |
884 | 52 #include "device-impl.h" |
428 | 53 #include "elhash.h" |
54 #include "events.h" | |
884 | 55 #include "extents-impl.h" |
428 | 56 #include "faces.h" |
884 | 57 #include "frame-impl.h" |
428 | 58 #include "glyphs.h" |
442 | 59 #include "gui.h" |
428 | 60 #include "keymap.h" |
61 #include "lstream.h" | |
885 | 62 #include "objects-impl.h" |
428 | 63 #include "opaque.h" |
64 #include "process.h" | |
65 #include "rangetab.h" | |
66 #include "specifier.h" | |
4677
8f1ee2d15784
Support full Common Lisp multiple values in C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
3354
diff
changeset
|
67 #include "symeval.h" |
428 | 68 #include "syntax.h" |
69 #include "window.h" | |
70 | |
3050 | 71 /* If we demand !defined (HAVE_SHLIB) the INLINE_HEADERS aren't instantiated. |
72 This only shows up in --with-error-checking=types builds AFAIK. | |
73 On Mac OS X 10.3.9 with the Apple toolchain (GCC 3.3) gives a buildtime | |
74 link error (the lrecord error_check functions are undefined). | |
75 Debian GNU/Linux `sid' with GCC 4.0.3 prerelease & binutils 2.16.91 gives | |
76 a runtime link error (the lrecord error_check functions are undefined). | |
77 It is possible that this can be fixed trickily by appropriately defining | |
78 INLINE, or that it should be done in the module itself somehow. If you | |
79 can do it better or more elegantly, please feel free to consult me. | |
80 --stephen 2005-11-07 */ | |
81 #if defined (HAVE_LDAP) | |
996 | 82 #include "../modules/ldap/eldap.h" |
428 | 83 #endif |
84 | |
3050 | 85 /* We can't ask for !defined (HAVE_SHLIB). See HAVE_LDAP, above. */ |
86 #if defined (HAVE_POSTGRESQL) | |
996 | 87 #include "../modules/postgresql/postgresql.h" |
442 | 88 #endif |
89 | |
428 | 90 #ifdef HAVE_TOOLBARS |
91 #include "toolbar.h" | |
92 #endif | |
93 | |
617 | 94 #ifdef HAVE_SCROLLBARS |
95 #include "scrollbar.h" | |
96 #endif | |
97 | |
428 | 98 #ifdef HAVE_DATABASE |
99 #include "database.h" | |
100 #endif | |
101 | |
102 #ifdef HAVE_X_WINDOWS | |
103 #include "glyphs-x.h" | |
3094 | 104 #ifdef USE_XFT |
3354 | 105 #include "font-mgr.h" |
3094 | 106 #endif |
428 | 107 #endif |
108 | |
442 | 109 #ifdef HAVE_MS_WINDOWS |
110 #include "console-msw.h" | |
111 #endif | |
112 | |
462 | 113 #ifdef HAVE_GTK |
114 #include "console-gtk.h" | |
115 #include "ui-gtk.h" | |
116 #endif | |
117 | |
428 | 118 #include "file-coding.h" |
119 | |
120 #ifdef TOOLTALK | |
121 #include "tooltalk.h" | |
122 #endif |