Mercurial > hg > xemacs-beta
annotate src/insdel.h @ 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 | 304aebb79cd3 |
children | 308d34e9f07d |
rev | line source |
---|---|
428 | 1 /* Buffer insertion/deletion and gap motion for XEmacs. |
2 Copyright (C) 1985-1994 Free Software Foundation, 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 /* Mostly rewritten by Ben Wing. */ | |
24 | |
440 | 25 #ifndef INCLUDED_insdel_h_ |
26 #define INCLUDED_insdel_h_ | |
428 | 27 |
28 /************************************************************************/ | |
29 /* changing a buffer's text */ | |
30 /************************************************************************/ | |
31 | |
665 | 32 int begin_multiple_change (struct buffer *buf, Charbpos start, Charbpos end); |
428 | 33 void end_multiple_change (struct buffer *buf, int count); |
34 | |
35 /* flags for functions below */ | |
36 | |
37 #define INSDEL_BEFORE_MARKERS 1 | |
38 #define INSDEL_NO_LOCKING 2 | |
39 | |
665 | 40 Charcount buffer_insert_string_1 (struct buffer *buf, Charbpos pos, |
867 | 41 const Ibyte *nonreloc, Lisp_Object reloc, |
428 | 42 Bytecount offset, Bytecount length, |
43 int flags); | |
665 | 44 Charcount buffer_insert_raw_string_1 (struct buffer *buf, Charbpos pos, |
867 | 45 const Ibyte *nonreloc, |
428 | 46 Bytecount length, int flags); |
665 | 47 Charcount buffer_insert_lisp_string_1 (struct buffer *buf, Charbpos pos, |
428 | 48 Lisp_Object str, int flags); |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
867
diff
changeset
|
49 Charcount buffer_insert_ascstring_1 (struct buffer *buf, Charbpos pos, |
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
867
diff
changeset
|
50 const Ascbyte *s, int flags); |
665 | 51 Charcount buffer_insert_emacs_char_1 (struct buffer *buf, Charbpos pos, |
867 | 52 Ichar ch, int flags); |
665 | 53 Charcount buffer_insert_c_char_1 (struct buffer *buf, Charbpos pos, char c, |
428 | 54 int flags); |
665 | 55 Charcount buffer_insert_from_buffer_1 (struct buffer *buf, Charbpos pos, |
56 struct buffer *buf2, Charbpos pos2, | |
428 | 57 Charcount length, int flags); |
58 | |
59 /* Macros for insertion functions that insert at point after markers. | |
60 All of these can GC. */ | |
61 | |
62 #define buffer_insert_string(buf, nonreloc, reloc, offset, length) \ | |
63 buffer_insert_string_1 (buf, -1, nonreloc, reloc, offset, length, 0) | |
64 #define buffer_insert_raw_string(buf, string, length) \ | |
65 buffer_insert_raw_string_1 (buf, -1, string, length, 0) | |
4953
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
867
diff
changeset
|
66 #define buffer_insert_ascstring(buf, s) \ |
304aebb79cd3
function renamings to track names of char typedefs
Ben Wing <ben@xemacs.org>
parents:
867
diff
changeset
|
67 buffer_insert_ascstring_1 (buf, -1, s, 0) |
428 | 68 #define buffer_insert_lisp_string(buf, str) \ |
69 buffer_insert_lisp_string_1 (buf, -1, str, 0) | |
70 #define buffer_insert_c_char(buf, c) \ | |
71 buffer_insert_c_char_1 (buf, -1, c, 0) | |
72 #define buffer_insert_emacs_char(buf, ch) \ | |
73 buffer_insert_emacs_char_1 (buf, -1, ch, 0) | |
74 #define buffer_insert_from_buffer(buf, b, index, length) \ | |
75 buffer_insert_from_buffer_1 (buf, -1, b, index, length, 0) | |
76 | |
665 | 77 void buffer_delete_range (struct buffer *buf, Charbpos from, Charbpos to, |
428 | 78 int flags); |
867 | 79 void buffer_replace_char (struct buffer *b, Charbpos pos, Ichar ch, |
428 | 80 int not_real_change, int force_lock_check); |
81 | |
82 | |
83 /************************************************************************/ | |
84 /* tracking buffer changes */ | |
85 /************************************************************************/ | |
86 | |
87 /* Split into two parts. One part goes with a buffer's text (possibly | |
88 shared), the other with the buffer itself. */ | |
89 | |
90 struct buffer_text_change_data | |
91 { | |
92 /* multiple change stuff */ | |
93 int in_multiple_change; | |
665 | 94 Charbpos mc_begin, mc_orig_end, mc_new_end; |
428 | 95 int mc_begin_signaled; |
96 }; | |
97 | |
98 struct each_buffer_change_data | |
99 { | |
100 Charcount begin_unchanged, end_unchanged; | |
101 /* redisplay needs to know if a newline was deleted so its | |
102 incremental-redisplay algorithm will fail */ | |
103 int newline_was_deleted; | |
104 Charcount begin_extent_unchanged, end_extent_unchanged; | |
105 }; | |
106 | |
107 /* Number of characters at the beginning and end of the buffer that | |
108 have not changed since the last call to buffer_reset_changes(). | |
109 If no changes have occurred since then, both values will be -1. | |
110 | |
111 "Changed" means that the text has changed. */ | |
112 | |
113 #define BUF_BEGIN_UNCHANGED(buf) ((buf)->changes->begin_unchanged) | |
114 #define BUF_END_UNCHANGED(buf) ((buf)->changes->end_unchanged) | |
115 | |
116 /* Number of characters at the beginning and end of the buffer that | |
117 have not had a covering extent change since the last call to | |
118 buffer_reset_changes (). If no changes have occurred since then, | |
119 both values will be -1. | |
120 | |
121 "Changed" means that the extents covering the text have changed. */ | |
122 | |
123 #define BUF_EXTENT_BEGIN_UNCHANGED(buf) \ | |
124 ((buf)->changes->begin_extent_unchanged) | |
125 #define BUF_EXTENT_END_UNCHANGED(buf) \ | |
126 ((buf)->changes->end_extent_unchanged) | |
127 | |
128 #define BUF_NEWLINE_WAS_DELETED(buf) \ | |
129 ((buf)->changes->newline_was_deleted) | |
130 | |
131 void buffer_extent_signal_changed_region (struct buffer *buf, | |
665 | 132 Charbpos start, |
133 Charbpos end); | |
428 | 134 void buffer_reset_changes (struct buffer *buf); |
135 | |
136 | |
137 | |
138 /************************************************************************/ | |
139 /* other related functions */ | |
140 /************************************************************************/ | |
141 | |
665 | 142 Membpos do_marker_adjustment (Membpos mpos, Membpos from, |
143 Membpos to, Bytecount amount); | |
428 | 144 |
867 | 145 void fixup_internal_substring (const Ibyte *nonreloc, |
428 | 146 Lisp_Object reloc, |
147 Bytecount offset, Bytecount *len); | |
148 | |
149 /* In font-lock.c */ | |
150 void font_lock_maybe_update_syntactic_caches (struct buffer *buf, | |
665 | 151 Charbpos start, |
152 Charbpos orig_end, | |
153 Charbpos new_end); | |
428 | 154 void font_lock_buffer_was_killed (struct buffer *buf); |
155 | |
665 | 156 void barf_if_buffer_read_only (struct buffer *buf, Charbpos from, |
157 Charbpos to); | |
428 | 158 |
159 void init_buffer_text (struct buffer *b); | |
160 void uninit_buffer_text (struct buffer *b); | |
161 | |
440 | 162 #endif /* INCLUDED_insdel_h_ */ |