Mercurial > hg > xemacs-beta
annotate src/inline.c @ 5167:e374ea766cc1
clean up, rearrange allocation statistics code
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-21 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (assert_proper_sizing):
* alloc.c (c_readonly):
* alloc.c (malloced_storage_size):
* alloc.c (fixed_type_block_overhead):
* alloc.c (lisp_object_storage_size):
* alloc.c (inc_lrecord_stats):
* alloc.c (dec_lrecord_stats):
* alloc.c (pluralize_word):
* alloc.c (object_memory_usage_stats):
* alloc.c (Fobject_memory_usage):
* alloc.c (compute_memusage_stats_length):
* alloc.c (disksave_object_finalization_1):
* alloc.c (Fgarbage_collect):
* mc-alloc.c:
* mc-alloc.c (mc_alloced_storage_size):
* mc-alloc.h:
No functionality change here. Collect the allocations-statistics
code that was scattered throughout alloc.c into one place. Add
remaining section headings so that all sections have headings
clearly identifying the start of the section and its purpose.
Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS;
this fixes build problems and is related to the export of
lisp_object_storage_size() and malloced_storage_size() when
non-MEMORY_USAGE_STATS in the previous change set.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sun, 21 Mar 2010 04:41:49 -0500 |
parents | b5df3737028a |
children | 97eb4942aec8 |
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 | |
5118
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
4677
diff
changeset
|
38 that use the INLINE macro, either directly, or by using DECLARE_LISP_OBJECT. |
e0db3c197671
merge up to latest default branch, doesn't compile yet
Ben Wing <ben@xemacs.org>
parents:
4677
diff
changeset
|
39 i.e. the output of ``grep -l -w 'DECLARE_LISP_OBJECT|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 | |
5120
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
102 #include "console-stream-impl.h" |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
103 |
428 | 104 #ifdef HAVE_X_WINDOWS |
5120
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
105 #include "console-x-impl.h" |
4916
a6c778975d7d
split USE_XFT into HAVE_XFT/USE_XFT
Ben Wing <ben@xemacs.org>
parents:
4677
diff
changeset
|
106 #ifdef HAVE_XFT |
3354 | 107 #include "font-mgr.h" |
3094 | 108 #endif |
428 | 109 #endif |
110 | |
442 | 111 #ifdef HAVE_MS_WINDOWS |
5120
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
112 #include "console-msw-impl.h" |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
113 #endif |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
114 |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
115 #ifdef HAVE_TTY |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
116 #include "console-tty-impl.h" |
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
117 #include "objects-tty-impl.h" |
442 | 118 #endif |
119 | |
462 | 120 #ifdef HAVE_GTK |
5120
d1247f3cc363
latest work on lisp-object workspace;
Ben Wing <ben@xemacs.org>
parents:
5118
diff
changeset
|
121 #include "console-gtk-impl.h" |
462 | 122 #include "ui-gtk.h" |
123 #endif | |
124 | |
428 | 125 #include "file-coding.h" |
126 | |
127 #ifdef TOOLTALK | |
128 #include "tooltalk.h" | |
129 #endif |