Mercurial > hg > xemacs-beta
comparison src/ChangeLog @ 5178:97eb4942aec8
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 29 Mar 2010 21:28:13 -0500 |
parents | b785049378e3 be6e5ea38dda |
children | 4cd28c29a7a1 |
comparison
equal
deleted
inserted
replaced
5177:b785049378e3 | 5178:97eb4942aec8 |
---|---|
1 2010-03-28 Ben Wing <ben@xemacs.org> | |
2 | |
3 * window.c (find_window_mirror_internal): | |
4 Stop looking if no window mirror, and return 0. | |
5 | |
6 * window.c (window_display_lines): | |
7 * window.c (window_display_buffer): | |
8 * window.c (set_window_display_buffer): | |
9 Don't need to update window mirror before calling find_window_mirror | |
10 because does the updating automatically. | |
11 | |
12 2010-03-25 Ben Wing <ben@xemacs.org> | |
13 | |
14 * alloc.c: | |
15 * alloc.c (struct): | |
16 * alloc.c (finish_object_memory_usage_stats): | |
17 * alloc.c (object_memory_usage_stats): | |
18 * alloc.c (Fobject_memory_usage): | |
19 * alloc.c (lisp_object_memory_usage_full): | |
20 * alloc.c (compute_memusage_stats_length): | |
21 * lrecord.h: | |
22 * lrecord.h (struct lrecord_implementation): | |
23 Add fields to the `lrecord_implementation' structure to list an | |
24 offset into the array of extra statistics in a | |
25 `struct generic_usage_stats' and a length, listing the first slice | |
26 of ancillary Lisp-object memory. Compute automatically in | |
27 compute_memusage_stats_length(). Use to add an entry | |
28 `FOO-lisp-ancillary-storage' for object type FOO. | |
29 | |
30 Don't crash when an int or char is given to object-memory-usage, | |
31 signal an error instead. | |
32 | |
33 Add functions lisp_object_memory_usage_full() and | |
34 lisp_object_memory_usage() to compute the total memory usage of an | |
35 object (sum of object, non-Lisp attached, and Lisp ancillary | |
36 memory). | |
37 | |
38 * array.c: | |
39 * array.c (gap_array_memory_usage): | |
40 * array.h: | |
41 Add function to return memory usage of a gap array. | |
42 | |
43 * buffer.c (struct buffer_stats): | |
44 * buffer.c (compute_buffer_usage): | |
45 * buffer.c (vars_of_buffer): | |
46 * extents.c (compute_buffer_extent_usage): | |
47 * marker.c: | |
48 * marker.c (compute_buffer_marker_usage): | |
49 * extents.h: | |
50 * lisp.h: | |
51 Remove `struct usage_stats' arg from compute_buffer_marker_usage() | |
52 and compute_buffer_extent_usage() -- these are ancillary Lisp | |
53 objects and don't get accumulated into `struct usage_stats'; | |
54 change the value of `memusage_stats_list' so that `markers' and | |
55 `extents' memory is in Lisp-ancillary, where it belongs. | |
56 | |
57 In compute_buffer_marker_usage(), use lisp_object_memory_usage() | |
58 rather than lisp_object_storage_size(). | |
59 | |
60 * casetab.c: | |
61 * casetab.c (case_table_memory_usage): | |
62 * casetab.c (vars_of_casetab): | |
63 * emacs.c (main_1): | |
64 Add memory usage stats for case tables. | |
65 | |
66 * lisp.h: | |
67 Add comment explaining the `struct generic_usage_stats' more, | |
68 as well as the new fields in lrecord_implementation. | |
69 | |
70 * console-impl.h: | |
71 * console-impl.h (struct console_methods): | |
72 * scrollbar-gtk.c: | |
73 * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage): | |
74 * scrollbar-msw.c: | |
75 * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage): | |
76 * scrollbar-x.c: | |
77 * scrollbar-x.c (x_compute_scrollbar_instance_usage): | |
78 * scrollbar.c: | |
79 * scrollbar.c (struct scrollbar_instance_stats): | |
80 * scrollbar.c (compute_all_scrollbar_instance_usage): | |
81 * scrollbar.c (scrollbar_instance_memory_usage): | |
82 * scrollbar.c (scrollbar_objects_create): | |
83 * scrollbar.c (vars_of_scrollbar): | |
84 * scrollbar.h: | |
85 * symsinit.h: | |
86 * window.c: | |
87 * window.c (find_window_mirror_maybe): | |
88 * window.c (struct window_mirror_stats): | |
89 * window.c (compute_window_mirror_usage): | |
90 * window.c (window_mirror_memory_usage): | |
91 * window.c (compute_window_usage): | |
92 * window.c (window_objects_create): | |
93 * window.c (syms_of_window): | |
94 * window.c (vars_of_window): | |
95 Redo memory-usage associated with windows, window mirrors, and | |
96 scrollbar instances. Should fix crash in find_window_mirror, | |
97 among other things. Properly assign memo ry to object memory, | |
98 non-Lisp extra memory, and Lisp ancillary memory. For example, | |
99 redisplay structures are non-Lisp memory hanging off a window | |
100 mirror, not a window; make it an ancillary Lisp-object field. | |
101 Window mirrors and scrollbar instances have their own statistics, | |
102 among other things. | |
103 | |
104 2010-03-24 Ben Wing <ben@xemacs.org> | |
105 | |
106 * array.h: | |
107 * array.h (XD_LISP_DYNARR_DESC): | |
108 * dumper.c (pdump_register_sub): | |
109 * dumper.c (pdump_store_new_pointer_offsets): | |
110 * dumper.c (pdump_reloc_one_mc): | |
111 * elhash.c: | |
112 * gc.c (lispdesc_one_description_line_size): | |
113 * gc.c (kkcc_marking): | |
114 * lrecord.h: | |
115 * lrecord.h (IF_NEW_GC): | |
116 * lrecord.h (enum memory_description_type): | |
117 * lrecord.h (enum data_description_entry_flags): | |
118 * lrecord.h (struct opaque_convert_functions): | |
119 Rename XD_LISP_OBJECT_BLOCK_PTR to XD_INLINE_LISP_OBJECT_BLOCK_PTR | |
120 and document it in lrecord.h. | |
121 | |
122 * data.c: | |
123 * data.c (finish_marking_weak_lists): | |
124 * data.c (continue_marking_ephemerons): | |
125 * data.c (finish_marking_ephemerons): | |
126 * elhash.c (MARK_OBJ): | |
127 * gc.c: | |
128 * gc.c (lispdesc_indirect_count_1): | |
129 * gc.c (struct): | |
130 * gc.c (kkcc_bt_push): | |
131 * gc.c (kkcc_gc_stack_push): | |
132 * gc.c (kkcc_gc_stack_push_lisp_object): | |
133 * gc.c (kkcc_gc_stack_repush_dirty_object): | |
134 * gc.c (KKCC_DO_CHECK_FREE): | |
135 * gc.c (mark_object_maybe_checking_free): | |
136 * gc.c (mark_struct_contents): | |
137 * gc.c (mark_lisp_object_block_contents): | |
138 * gc.c (register_for_finalization): | |
139 * gc.c (mark_object): | |
140 * gc.h: | |
141 * lisp.h: | |
142 * profile.c: | |
143 * profile.c (mark_profiling_info_maphash): | |
144 Clean up KKCC code related to DEBUG_XEMACS. Rename | |
145 kkcc_backtrace() to kkcc_backtrace_1() and add two params: a | |
146 `size' arg to control how many stack elements to print and a | |
147 `detailed' arg to control whether Lisp objects are printed using | |
148 `debug_print()'. Create front-ends to kkcc_backtrace_1() -- | |
149 kkcc_detailed_backtrace(), kkcc_short_backtrace(), | |
150 kkcc_detailed_backtrace_full(), kkcc_short_backtrace_full(), as | |
151 well as shortened versions kbt(), kbts(), kbtf(), kbtsf() -- to | |
152 call it with various parameter values. Add an `is_lisp' field to | |
153 the stack and backtrace structures and use it to keep track of | |
154 whether an object pushed onto the stack is a Lisp object or a | |
155 non-Lisp structure; in kkcc_backtrace_1(), don't try to print a | |
156 non-Lisp structure as a Lisp object. | |
157 | |
158 * elhash.c: | |
159 * extents.c: | |
160 * file-coding.c: | |
161 * lrecord.h: | |
162 * lrecord.h (IF_NEW_GC): | |
163 * marker.c: | |
164 * marker.c (Fmarker_buffer): | |
165 * mule-coding.c: | |
166 * number.c: | |
167 * rangetab.c: | |
168 * specifier.c: | |
169 New macros IF_OLD_GC(), IF_NEW_GC() to simplify declaration of | |
170 Lisp objects when a finalizer may exist in one but not the other. | |
171 Use them appropriately. | |
172 | |
173 * extents.c (finalize_extent_info): | |
174 Don't zero out data->soe and data->extents before trying to free, | |
175 else we get memory leaks. | |
176 | |
177 * lrecord.h (enum lrecord_type): | |
178 Make the first lrecord type have value 1 not 0 so that 0 remains | |
179 without implementation and attempts to interpret zeroed memory | |
180 as a Lisp object will be more obvious. | |
181 | |
182 * array.c (Dynarr_free): | |
183 * device-msw.c (msprinter_delete_device): | |
184 * device-tty.c (free_tty_device_struct): | |
185 * device-tty.c (tty_delete_device): | |
186 * dialog-msw.c (handle_directory_dialog_box): | |
187 * dialog-x.c: | |
188 * emacs.c (free_argc_argv): | |
189 * emodules.c (attempt_module_delete): | |
190 * file-coding.c (chain_finalize_coding_stream_1): | |
191 * file-coding.c (chain_finalize_coding_stream): | |
192 * glyphs-eimage.c: | |
193 * glyphs-eimage.c (jpeg_instantiate_unwind): | |
194 * glyphs-eimage.c (gif_instantiate_unwind): | |
195 * glyphs-eimage.c (png_instantiate_unwind): | |
196 * glyphs-eimage.c (tiff_instantiate_unwind): | |
197 * imgproc.c: | |
198 * imgproc.c (build_EImage_quantable): | |
199 * insdel.c (uninit_buffer_text): | |
200 * mule-coding.c (iso2022_finalize_detection_state): | |
201 * objects-tty.c (tty_finalize_color_instance): | |
202 * objects-tty.c (tty_finalize_font_instance): | |
203 * objects-tty.c (tty_font_list): | |
204 * process.c: | |
205 * process.c (finalize_process): | |
206 * redisplay.c (add_propagation_runes): | |
207 * scrollbar-gtk.c: | |
208 * scrollbar-gtk.c (gtk_free_scrollbar_instance): | |
209 * scrollbar-gtk.c (gtk_release_scrollbar_instance): | |
210 * scrollbar-msw.c: | |
211 * scrollbar-msw.c (mswindows_free_scrollbar_instance): | |
212 * scrollbar-msw.c (unshow_that_mofo): | |
213 * scrollbar-x.c (x_free_scrollbar_instance): | |
214 * scrollbar-x.c (x_release_scrollbar_instance): | |
215 * select-x.c: | |
216 * select-x.c (x_handle_selection_request): | |
217 * syntax.c: | |
218 * syntax.c (uninit_buffer_syntax_cache): | |
219 * text.h (eifree): | |
220 If possible, whenever we call xfree() on a field in a structure, | |
221 set the field to 0 afterwards. A lot of code is written so that | |
222 it checks the value being freed to see if it is non-zero before | |
223 freeing it -- doing this and setting the value to 0 afterwards | |
224 ensures (a) we won't try to free twice if the cleanup code is | |
225 called twice; (b) if the object itself stays around, KKCC won't | |
226 crash when attempting to mark the freed field. | |
227 | |
228 * rangetab.c: | |
229 Add a finalization method when not NEW_GC to avoid memory leaks. | |
230 (#### We still get memory leaks when NEW_GC; need to convert gap | |
231 array to Lisp object). | |
232 | |
233 2010-03-22 Ben Wing <ben@xemacs.org> | |
234 | |
235 * Makefile.in.in (objs): | |
236 * array.c: | |
237 * array.c (gap_array_adjust_markers): | |
238 * array.c (gap_array_move_gap): | |
239 * array.c (gap_array_make_gap): | |
240 * array.c (gap_array_insert_els): | |
241 * array.c (gap_array_delete_els): | |
242 * array.c (gap_array_make_marker): | |
243 * array.c (gap_array_delete_marker): | |
244 * array.c (gap_array_delete_all_markers): | |
245 * array.c (gap_array_clone): | |
246 * array.h: | |
247 * depend: | |
248 * emacs.c (main_1): | |
249 * extents.c: | |
250 * extents.c (EXTENT_GAP_ARRAY_AT): | |
251 * extents.c (extent_list_num_els): | |
252 * extents.c (extent_list_locate): | |
253 * extents.c (extent_list_at): | |
254 * extents.c (extent_list_delete_all): | |
255 * extents.c (allocate_extent_list): | |
256 * extents.c (syms_of_extents): | |
257 * extents.h: | |
258 * extents.h (XEXTENT_LIST_MARKER): | |
259 * lisp.h: | |
260 * rangetab.c: | |
261 * rangetab.c (mark_range_table): | |
262 * rangetab.c (print_range_table): | |
263 * rangetab.c (range_table_equal): | |
264 * rangetab.c (range_table_hash): | |
265 * rangetab.c (verify_range_table): | |
266 * rangetab.c (get_range_table_pos): | |
267 * rangetab.c (Fmake_range_table): | |
268 * rangetab.c (Fcopy_range_table): | |
269 * rangetab.c (Fget_range_table): | |
270 * rangetab.c (put_range_table): | |
271 * rangetab.c (Fclear_range_table): | |
272 * rangetab.c (Fmap_range_table): | |
273 * rangetab.c (unified_range_table_bytes_needed): | |
274 * rangetab.c (unified_range_table_copy_data): | |
275 * rangetab.c (unified_range_table_lookup): | |
276 * rangetab.h: | |
277 * rangetab.h (struct range_table_entry): | |
278 * rangetab.h (struct Lisp_Range_Table): | |
279 * rangetab.h (rangetab_gap_array_at): | |
280 * symsinit.h: | |
281 Rename dynarr.c to array.c. Move gap array from extents.c to array.c. | |
282 Extract dynarr, gap array and stack-like malloc into new file array.h. | |
283 Rename GAP_ARRAY_NUM_ELS -> gap_array_length(). Add gap_array_at(), | |
284 gap_array_atp(). | |
285 | |
286 Rewrite range table code to use gap arrays. Make put_range_table() | |
287 smarter so that its operation is O(log n) for adding a localized | |
288 range. | |
289 | |
290 * gc.c (lispdesc_block_size_1): | |
291 Don't ABORT() when two elements are located at the same place. | |
292 This will happen with a size-0 gap array -- both parts of the array | |
293 (before and after gap) are in the same place. | |
294 | |
295 2010-03-21 Ben Wing <ben@xemacs.org> | |
296 | |
297 * alloc.c: | |
298 * alloc.c (assert_proper_sizing): | |
299 * alloc.c (c_readonly): | |
300 * alloc.c (malloced_storage_size): | |
301 * alloc.c (fixed_type_block_overhead): | |
302 * alloc.c (lisp_object_storage_size): | |
303 * alloc.c (inc_lrecord_stats): | |
304 * alloc.c (dec_lrecord_stats): | |
305 * alloc.c (pluralize_word): | |
306 * alloc.c (object_memory_usage_stats): | |
307 * alloc.c (Fobject_memory_usage): | |
308 * alloc.c (compute_memusage_stats_length): | |
309 * alloc.c (disksave_object_finalization_1): | |
310 * alloc.c (Fgarbage_collect): | |
311 * mc-alloc.c: | |
312 * mc-alloc.c (mc_alloced_storage_size): | |
313 * mc-alloc.h: | |
314 No functionality change here. Collect the allocations-statistics | |
315 code that was scattered throughout alloc.c into one place. Add | |
316 remaining section headings so that all sections have headings | |
317 clearly identifying the start of the section and its purpose. | |
318 Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS; | |
319 this fixes build problems and is related to the export of | |
320 lisp_object_storage_size() and malloced_storage_size() when | |
321 non-MEMORY_USAGE_STATS in the previous change set. | |
322 | |
323 2010-03-22 Vin Shelton <acs@xemacs.org> | |
324 | |
325 * window.c (vars_of_window): Move HAVE_SCROLLBARS test so the code | |
326 can compile under Visual Studio 6. | |
327 | |
328 2010-03-21 Aidan Kehoe <kehoea@parhasard.net> | |
329 | |
330 * alloc.c (tick_lrecord_stats): | |
331 Fix the union build after Ben's last change, don't assume that a | |
332 Lisp_Object will fit into a Bytecount. | |
333 | |
334 2010-03-20 Ben Wing <ben@xemacs.org> | |
335 | |
336 * alloc.c: | |
337 * alloc.c (init_lrecord_stats): | |
338 * alloc.c (free_normal_lisp_object): | |
339 * alloc.c (struct): | |
340 * alloc.c (clear_lrecord_stats): | |
341 * alloc.c (tick_lrecord_stats): | |
342 * alloc.c (COUNT_FROB_BLOCK_USAGE): | |
343 * alloc.c (COPY_INTO_LRECORD_STATS): | |
344 * alloc.c (sweep_strings): | |
345 * alloc.c (UNMARK_string): | |
346 * alloc.c (gc_sweep_1): | |
347 * alloc.c (finish_object_memory_usage_stats): | |
348 * alloc.c (object_memory_usage_stats): | |
349 * alloc.c (object_dead_p): | |
350 * alloc.c (fixed_type_block_overhead): | |
351 * alloc.c (lisp_object_storage_size): | |
352 * emacs.c (main_1): | |
353 * lisp.h: | |
354 * lrecord.h: | |
355 Export lisp_object_storage_size() and malloced_storage_size() even | |
356 when not MEMORY_USAGE_STATS, to get the non-MEMORY_USAGE_STATS | |
357 build to compile. | |
358 | |
359 Don't export fixed_type_block_overhead() any more. | |
360 | |
361 Some code cleanup, rearrangement, add some section headers. | |
362 | |
363 Clean up various bugs especially involving computation of overhead | |
364 and double-counting certain usage in total_gc_usage. Add | |
365 statistics computing the overhead used by all types. Don't add a | |
366 special entry for string headers in the object-memory-usage-stats | |
367 because it's already present as just "string". But do count the | |
368 overhead used by long strings. Don't try to call the | |
369 memory_usage() methods when NEW_GC because there's nowhere obvious | |
370 in the sweep stage to make the calls. | |
371 | |
372 * marker.c (compute_buffer_marker_usage): | |
373 Just use lisp_object_storage_size() rather than trying to | |
374 reimplement it. | |
375 | |
376 2010-03-19 Ben Wing <ben@xemacs.org> | |
377 | |
378 * alloc.c: | |
379 * alloc.c (struct): | |
380 * alloc.c (tick_lrecord_stats): | |
381 * alloc.c (gc_sweep_1): | |
382 * alloc.c (finish_object_memory_usage_stats): | |
383 * alloc.c (object_memory_usage_stats): | |
384 * alloc.c (compute_memusage_stats_length): | |
385 Call new memory-usage mechanism at sweep time to compute extra | |
386 memory utilization for all objects. Add up the values element-by- | |
387 element to get an aggregrate set of statistics, where each is the | |
388 sum of the values of a single statistic across different objects | |
389 of the same type. At end of sweep time, call | |
390 finish_object_memory_usage_stats() to add up all the aggreggrate | |
391 stats that are related to non-Lisp memory storage to compute | |
392 a single value, and add it to the list of values returned by | |
393 `garbage-collect' and `object-memory-usage-stats'. | |
394 | |
395 * buffer.c (compute_buffer_text_usage): | |
396 Don't crash on buffers without text (killed buffers?) and don't | |
397 double-count indirect buffers. | |
398 | |
399 * elhash.c: | |
400 * elhash.c (hash_table_objects_create): | |
401 * elhash.c (vars_of_elhash): | |
402 * symsinit.h: | |
403 Add memory-usage method to count the size of `hentries'. | |
404 | |
405 * emacs.c (main_1): | |
406 Call new functions in elhash.c, frame.c at init. | |
407 | |
408 * frame.c: | |
409 * frame.c (compute_frame_usage): | |
410 * frame.c (frame_memory_usage): | |
411 * frame.c (frame_objects_create): | |
412 * symsinit.h: | |
413 Add memory-usage method to count gutter display structures, | |
414 subwindow exposures. | |
415 | |
416 * gc.c (gc_finish): | |
417 * lisp.h: | |
418 Declare finish_object_memory_usage_stats(), call it in gc_finish(). | |
419 | |
420 * lrecord.h (struct lrecord_implementation): | |
421 * lrecord.h (INIT_MEMORY_USAGE_STATS): | |
422 New value in implementation struct to track number of non-Lisp-memory | |
423 statistics. Computed in alloc.c. | |
424 | |
425 | |
426 2010-03-18 Ben Wing <ben@xemacs.org> | |
427 | |
428 * alloc.c: | |
429 * alloc.c (disksave_object_finalization_1): | |
430 * alloc.c (lisp_object_storage_size): | |
431 * alloc.c (listu): | |
432 * alloc.c (listn): | |
433 * alloc.c (Fobject_memory_usage_stats): | |
434 * alloc.c (compute_memusage_stats_length): | |
435 * alloc.c (Fobject_memory_usage): | |
436 * alloc.c (Ftotal_object_memory_usage): | |
437 * alloc.c (malloced_storage_size): | |
438 * alloc.c (common_init_alloc_early): | |
439 * alloc.c (reinit_alloc_objects_early): | |
440 * alloc.c (reinit_alloc_early): | |
441 * alloc.c (init_alloc_once_early): | |
442 * alloc.c (syms_of_alloc): | |
443 * alloc.c (reinit_vars_of_alloc): | |
444 * buffer.c: | |
445 * buffer.c (struct buffer_stats): | |
446 * buffer.c (compute_buffer_text_usage): | |
447 * buffer.c (compute_buffer_usage): | |
448 * buffer.c (buffer_memory_usage): | |
449 * buffer.c (buffer_objects_create): | |
450 * buffer.c (syms_of_buffer): | |
451 * buffer.c (vars_of_buffer): | |
452 * console-impl.h (struct console_methods): | |
453 * dynarr.c (Dynarr_memory_usage): | |
454 * emacs.c (main_1): | |
455 * events.c (clear_event_resource): | |
456 * extents.c: | |
457 * extents.c (compute_buffer_extent_usage): | |
458 * extents.c (extent_objects_create): | |
459 * extents.h: | |
460 * faces.c: | |
461 * faces.c (compute_face_cachel_usage): | |
462 * faces.c (face_objects_create): | |
463 * faces.h: | |
464 * general-slots.h: | |
465 * glyphs.c: | |
466 * glyphs.c (compute_glyph_cachel_usage): | |
467 * glyphs.c (glyph_objects_create): | |
468 * glyphs.h: | |
469 * lisp.h: | |
470 * lisp.h (struct usage_stats): | |
471 * lrecord.h: | |
472 * lrecord.h (enum lrecord_type): | |
473 * lrecord.h (struct lrecord_implementation): | |
474 * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE): | |
475 * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT): | |
476 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT): | |
477 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT): | |
478 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT): | |
479 * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT): | |
480 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT): | |
481 * lrecord.h (DEFINE_NODUMP_LISP_OBJECT): | |
482 * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT): | |
483 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT): | |
484 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT): | |
485 * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT): | |
486 * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT): | |
487 * lrecord.h (MAKE_LISP_OBJECT): | |
488 * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT): | |
489 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT): | |
490 * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT): | |
491 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT): | |
492 * lrecord.h (MAKE_MODULE_LISP_OBJECT): | |
493 * lrecord.h (INIT_LISP_OBJECT): | |
494 * lrecord.h (INIT_MODULE_LISP_OBJECT): | |
495 * lrecord.h (UNDEF_LISP_OBJECT): | |
496 * lrecord.h (UNDEF_MODULE_LISP_OBJECT): | |
497 * lrecord.h (DECLARE_LISP_OBJECT): | |
498 * lrecord.h (DECLARE_MODULE_API_LISP_OBJECT): | |
499 * lrecord.h (DECLARE_MODULE_LISP_OBJECT): | |
500 * lstream.c: | |
501 * lstream.c (syms_of_lstream): | |
502 * lstream.c (vars_of_lstream): | |
503 * marker.c: | |
504 * marker.c (compute_buffer_marker_usage): | |
505 * mc-alloc.c (mc_alloced_storage_size): | |
506 * mc-alloc.h: | |
507 * mule-charset.c: | |
508 * mule-charset.c (struct charset_stats): | |
509 * mule-charset.c (compute_charset_usage): | |
510 * mule-charset.c (charset_memory_usage): | |
511 * mule-charset.c (mule_charset_objects_create): | |
512 * mule-charset.c (syms_of_mule_charset): | |
513 * mule-charset.c (vars_of_mule_charset): | |
514 * redisplay.c: | |
515 * redisplay.c (compute_rune_dynarr_usage): | |
516 * redisplay.c (compute_display_block_dynarr_usage): | |
517 * redisplay.c (compute_glyph_block_dynarr_usage): | |
518 * redisplay.c (compute_display_line_dynarr_usage): | |
519 * redisplay.c (compute_line_start_cache_dynarr_usage): | |
520 * redisplay.h: | |
521 * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage): | |
522 * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage): | |
523 * scrollbar-x.c (x_compute_scrollbar_instance_usage): | |
524 * scrollbar.c (compute_scrollbar_instance_usage): | |
525 * scrollbar.h: | |
526 * symbols.c: | |
527 * symbols.c (reinit_symbol_objects_early): | |
528 * symbols.c (init_symbols_once_early): | |
529 * symbols.c (reinit_symbols_early): | |
530 * symbols.c (defsymbol_massage_name_1): | |
531 * symsinit.h: | |
532 * ui-gtk.c: | |
533 * ui-gtk.c (emacs_gtk_object_getprop): | |
534 * ui-gtk.c (emacs_gtk_object_putprop): | |
535 * ui-gtk.c (ui_gtk_objects_create): | |
536 * unicode.c (compute_from_unicode_table_size_1): | |
537 * unicode.c (compute_to_unicode_table_size_1): | |
538 * unicode.c (compute_from_unicode_table_size): | |
539 * unicode.c (compute_to_unicode_table_size): | |
540 * window.c: | |
541 * window.c (struct window_stats): | |
542 * window.c (compute_window_mirror_usage): | |
543 * window.c (compute_window_usage): | |
544 * window.c (window_memory_usage): | |
545 * window.c (window_objects_create): | |
546 * window.c (syms_of_window): | |
547 * window.c (vars_of_window): | |
548 * window.h: | |
549 Redo memory-usage mechanism, make it general; add way of dynamically | |
550 initializing Lisp object types -- OBJECT_HAS_METHOD(), similar to | |
551 CONSOLE_HAS_METHOD(). | |
552 | |
553 (1) Create OBJECT_HAS_METHOD(), OBJECT_HAS_PROPERTY() etc. for | |
554 specifying that a Lisp object type has a particular method or | |
555 property. Call such methods with OBJECT_METH, MAYBE_OBJECT_METH, | |
556 OBJECT_METH_OR_GIVEN; retrieve properties with OBJECT_PROPERTY. | |
557 Methods that formerly required a DEFINE_*GENERAL_LISP_OBJECT() to | |
558 specify them (getprop, putprop, remprop, plist, disksave) now | |
559 instead use the dynamic-method mechanism. The main benefit of | |
560 this is that new methods or properties can be added without | |
561 requiring that the declaration statements of all existing methods | |
562 be modified. We have to make the `struct lrecord_implementation' | |
563 non-const, but I don't think this should have any effect on speed -- | |
564 the only possible method that's really speed-critical is the | |
565 mark method, and we already extract those out into a separate | |
566 (non-const) array for increased cache locality. | |
567 | |
568 Object methods need to be reinitialized after pdump, so we put | |
569 them in separate functions such as face_objects_create(), | |
570 extent_objects_create() and call them appropriately from emacs.c | |
571 The only current object property (`memusage_stats_list') that | |
572 objects can specify is a Lisp object and gets staticpro()ed so it | |
573 only needs to be set during dump time, but because it references | |
574 symbols that might not exist in a syms_of_() function, we | |
575 initialize it in vars_of_(). There is also an object property | |
576 (`num_extra_memusage_stats') that is automatically initialized based | |
577 on `memusage_stats_list'; we do that in reinit_vars_of_alloc(), | |
578 which is called after all vars_of_() functions are called. | |
579 | |
580 `disksaver' method was renamed `disksave' to correspond with the | |
581 name normally given to the function (e.g. disksave_lstream()). | |
582 | |
583 (2) Generalize the memory-usage mechanism in `buffer-memory-usage', | |
584 `window-memory-usage', `charset-memory-usage' into an object-type- | |
585 specific mechanism called by a single function | |
586 `object-memory-usage'. (Former function `object-memory-usage' | |
587 renamed to `total-object-memory-usage'). Generalize the mechanism | |
588 of different "slices" so that we can have different "classes" of | |
589 memory described and different "slices" onto each class; `t' | |
590 separates classes, `nil' separates slices. Currently we have | |
591 three classes defined: the memory of an object itself, | |
592 non-Lisp-object memory associated with the object (e.g. arrays or | |
593 dynarrs stored as fields in the object), and Lisp-object memory | |
594 associated with the object (other internal Lisp objects stored in | |
595 the object). This isn't completely finished yet and we might need | |
596 to further separate the "other internal Lisp objects" class into | |
597 two classes. | |
598 | |
599 The memory-usage mechanism uses a `struct usage_stats' (renamed | |
600 from `struct overhead_stats') to describe a malloc-view onto a set | |
601 of allocated memory (listing how much was requested and various | |
602 types of overhead) and a more general `struct generic_usage_stats' | |
603 (with a `struct usage_stats' in it) to hold all statistics about | |
604 object memory. `struct generic_usage_stats' contains an array of | |
605 32 Bytecounts, which are statistics of unspecified semantics. The | |
606 intention is that individual types declare a corresponding struct | |
607 (e.g. `struct window_stats') with the same structure but with | |
608 specific fields in place of the array, corresponding to specific | |
609 statistics. The number of such statistics is an object property | |
610 computed from the list of tags (Lisp symbols describing the | |
611 statistics) stored in `memusage_stats_list'. The idea here is to | |
612 allow particular object types to customize the number and | |
613 semantics of the statistics where completely avoiding consing. | |
614 This doesn't matter so much yet, but the intention is to have the | |
615 memory usage of all objects computed at the end of GC, at the same | |
616 time as other statistics are currently computed. The values for | |
617 all statistics for a single type would be added up to compute | |
618 aggregate values for all objects of a specific type. To make this | |
619 efficient, we can't allow any memory allocation at all. | |
620 | |
621 (3) Create some additional functions for creating lists that | |
622 specify the elements directly as args rather than indirectly through | |
623 an array: listn() (number of args given), listu() (list terminated | |
624 by Qunbound). | |
625 | |
626 (4) Delete a bit of remaining unused C window_config stuff, also | |
627 unused lrecord_type_popup_data. | |
628 | |
629 | |
630 2010-03-18 Ben Wing <ben@xemacs.org> | |
631 | |
632 * tests.c: | |
633 * tests.c (Ftest_data_format_conversion): | |
634 Need to GCPRO newly created objects or we'll eventually get | |
635 a crash due to occurrence of call2(). | |
636 | |
637 2010-03-16 Ben Wing <ben@xemacs.org> | |
638 | |
639 * alloc.c (make_lcrecord_list): | |
640 * alloc.c (alloc_managed_lcrecord): | |
641 Fix compilation problems identified by Robert Delius Royar. | |
642 | |
643 2010-03-15 Ben Wing <ben@xemacs.org> | |
644 | |
645 * extents.c (Fprevious_single_property_change): | |
646 * extents.c (Fnext_single_char_property_change): | |
647 * extents.c (Fprevious_single_char_property_change): | |
648 Fix see-also portion of documentation string. | |
649 | |
650 2010-03-15 Ben Wing <ben@xemacs.org> | |
651 | |
652 * alloc.c: | |
653 * alloc.c (c_readonly): | |
654 * alloc.c (deadbeef_memory): | |
655 * alloc.c (make_compiled_function): | |
656 * alloc.c (make_button_data): | |
657 * alloc.c (make_motion_data): | |
658 * alloc.c (make_process_data): | |
659 * alloc.c (make_timeout_data): | |
660 * alloc.c (make_magic_data): | |
661 * alloc.c (make_magic_eval_data): | |
662 * alloc.c (make_eval_data): | |
663 * alloc.c (make_misc_user_data): | |
664 * alloc.c (noseeum_make_marker): | |
665 * alloc.c (ADDITIONAL_FREE_string): | |
666 * alloc.c (common_init_alloc_early): | |
667 * alloc.c (init_alloc_once_early): | |
668 * bytecode.c (print_compiled_function): | |
669 * bytecode.c (mark_compiled_function): | |
670 * casetab.c: | |
671 * casetab.c (print_case_table): | |
672 * console.c: | |
673 * console.c (print_console): | |
674 * database.c (print_database): | |
675 * database.c (finalize_database): | |
676 * device-msw.c (sync_printer_with_devmode): | |
677 * device-msw.c (print_devmode): | |
678 * device-msw.c (finalize_devmode): | |
679 * device.c: | |
680 * device.c (print_device): | |
681 * elhash.c: | |
682 * elhash.c (print_hash_table): | |
683 * eval.c (print_multiple_value): | |
684 * eval.c (mark_multiple_value): | |
685 * events.c (deinitialize_event): | |
686 * events.c (print_event): | |
687 * events.c (event_equal): | |
688 * extents.c: | |
689 * extents.c (soe_dump): | |
690 * extents.c (soe_insert): | |
691 * extents.c (soe_delete): | |
692 * extents.c (soe_move): | |
693 * extents.c (extent_fragment_update): | |
694 * extents.c (print_extent_1): | |
695 * extents.c (print_extent): | |
696 * extents.c (vars_of_extents): | |
697 * frame.c: | |
698 * frame.c (print_frame): | |
699 * free-hook.c: | |
700 * free-hook.c (check_free): | |
701 * glyphs.c: | |
702 * glyphs.c (print_image_instance): | |
703 * glyphs.c (print_glyph): | |
704 * gui.c: | |
705 * gui.c (copy_gui_item): | |
706 * hash.c: | |
707 * hash.c (NULL_ENTRY): | |
708 * hash.c (KEYS_DIFFER_P): | |
709 * keymap.c (print_keymap): | |
710 * keymap.c (MARKED_SLOT): | |
711 * lisp.h: | |
712 * lrecord.h: | |
713 * lrecord.h (LISP_OBJECT_UID): | |
714 * lrecord.h (set_lheader_implementation): | |
715 * lrecord.h (struct old_lcrecord_header): | |
716 * lstream.c (print_lstream): | |
717 * lstream.c (finalize_lstream): | |
718 * marker.c (print_marker): | |
719 * marker.c (marker_equal): | |
720 * mc-alloc.c (visit_all_used_page_headers): | |
721 * mule-charset.c: | |
722 * mule-charset.c (print_charset): | |
723 * objects.c (print_color_instance): | |
724 * objects.c (print_font_instance): | |
725 * objects.c (finalize_font_instance): | |
726 * opaque.c (print_opaque): | |
727 * opaque.c (print_opaque_ptr): | |
728 * opaque.c (equal_opaque_ptr): | |
729 * print.c (internal_object_printer): | |
730 * print.c (enum printing_badness): | |
731 * rangetab.c (print_range_table): | |
732 * rangetab.c (range_table_equal): | |
733 * specifier.c (print_specifier): | |
734 * specifier.c (finalize_specifier): | |
735 * symbols.c: | |
736 * symbols.c (print_symbol_value_magic): | |
737 * tooltalk.c: | |
738 * tooltalk.c (print_tooltalk_message): | |
739 * tooltalk.c (print_tooltalk_pattern): | |
740 * window.c (print_window): | |
741 * window.c (debug_print_window): | |
742 (1) Make lrecord UID's have a separate UID space for each object. | |
743 Otherwise, with 20-bit UID's, we rapidly wrap around, especially | |
744 when common objects like conses and strings increment the UID value | |
745 for every object created. (Originally I tried making two UID spaces, | |
746 one for objects that always print readably and hence don't display | |
747 the UID, and one for other objects. But certain objects like markers | |
748 for which a UID is displayed are still generated rapidly enough that | |
749 UID overflow is a serious issue.) This also has the advantage of | |
750 making UID values smaller, hence easier to remember -- their main | |
751 purpose is to make it easier to keep track of different objects of | |
752 the same type when debugging code. Make sure we dump lrecord UID's | |
753 so that we don't have problems with pdumped and non-dumped objects | |
754 having the same UID. | |
755 | |
756 (2) Display UID's consistently whenever an object (a) doesn't | |
757 consistently print readably (objects like cons and string, which | |
758 always print readably, can't display a UID), and (b) doesn't | |
759 otherwise have a unique property that makes objects of a | |
760 particular type distinguishable. (E.g. buffers didn't and still | |
761 don't print an ID, but the buffer name uniquely identifies the | |
762 buffer.) Some types, such as event, extent, compiled-function, | |
763 didn't always (or didn't ever) display an ID; others (such as | |
764 marker, extent, lstream, opaque, opaque-ptr, any object using | |
765 internal_object_printer()) used to display the actual machine | |
766 pointer instead. | |
767 | |
768 (3) Rename NORMAL_LISP_OBJECT_UID to LISP_OBJECT_UID; make it work | |
769 over all Lisp objects and take a Lisp object, not a struct pointer. | |
770 | |
771 (4) Some misc cleanups in alloc.c, elhash.c. | |
772 | |
773 (5) Change code in events.c that "deinitializes" an event so that | |
774 it doesn't increment the event UID counter in the process. Also | |
775 use deadbeef_memory() to overwrite memory instead of doing the same | |
776 with custom code. In the process, make deadbeef_memory() in | |
777 alloc.c always available, and delete extraneous copy in mc-alloc.c. | |
778 Also capitalize all uses of 0xDEADBEEF. Similarly in elhash.c | |
779 call deadbeef_memory(). | |
780 | |
781 (6) Resurrect "debug SOE" code in extents.c. Make it conditional | |
782 on DEBUG_XEMACS and on a `debug-soe' variable, rather than on | |
783 SOE_DEBUG. Make it output to stderr, not stdout. | |
784 | |
785 (7) Delete some custom print methods that were identical to | |
786 external_object_printer(). | |
787 | |
788 2010-03-12 Ben Wing <ben@xemacs.org> | |
789 | |
790 * lisp.h: | |
791 * lisp.h (redo-symbols): Removed. | |
792 Put the Lisp variables and symbols where they belong, with other | |
793 stuff related to the file they're in. | |
794 | |
795 * event-Xt.c (THIS_IS_X): | |
796 * event-Xt.c (syms_of_event_Xt): | |
797 * event-Xt.c (reinit_vars_of_event_Xt): | |
798 * event-gtk.c: | |
799 * event-gtk.c (syms_of_event_gtk): | |
800 * event-gtk.c (reinit_vars_of_event_gtk): | |
801 * event-stream.c: | |
802 * event-stream.c (syms_of_event_stream): | |
803 * event-stream.c (reinit_vars_of_event_stream): | |
804 * events.c (reinit_vars_of_events): | |
805 * events.c (vars_of_events): | |
806 `sans-modifiers' was defsymbol'ed more than once. Move it to | |
807 events-stream.c. `self-insert-command' was defsymbol'ed more than once. | |
808 Vevent_resource should be staticpro_nodump()ed as it's declared in | |
809 a reinit_*() method. | |
810 | |
811 * lread.c (vars_of_lread): | |
812 Vfile_domain wasn't staticpro'ed. | |
813 | |
814 * minibuf.c: | |
815 * minibuf.c (reinit_complex_vars_of_minibuf): | |
816 Vminibuffer_zero and Vecho_area_buffer weren't staticpro'ed. | |
817 | |
818 2010-03-12 Ben Wing <ben@xemacs.org> | |
819 | |
820 * redisplay-msw.c: | |
821 * redisplay-msw.c (mswindows_output_dibitmap_region): | |
822 * redisplay-msw.c (mswindows_output_pixmap): | |
823 * redisplay-msw.c (mswindows_clear_region): | |
824 Have a crack at implementing the `absolute' property for | |
825 background pixmaps. It seems to work; however, things don't | |
826 work quite right in relation to window sizing/moving. In particular, | |
827 ideally when you move the window the background should stay in place | |
828 but it doesn't; instead it moves, and when you hit C-l it gets | |
829 redrawn in the "proper" place. When resizing you get some serious | |
830 jitter, apparently as first the image gets moved then redrawn in | |
831 the correct offset position. #### Not sure how to fix this. | |
832 | |
833 2010-03-13 Ben Wing <ben@xemacs.org> | |
834 | |
835 * alloc.c (alloc_sized_lrecord_1): | |
836 * alloc.c (alloc_sized_lrecord_array): | |
837 * alloc.c (old_alloc_sized_lcrecord): | |
838 * alloc.c (disksave_object_finalization_1): | |
839 * alloc.c (mark_lcrecord_list): | |
840 * alloc.c (alloc_managed_lcrecord): | |
841 * alloc.c (free_managed_lcrecord): | |
842 * alloc.c (tick_lcrecord_stats): | |
843 * alloc.c (sweep_lcrecords_1): | |
844 * buffer.c (print_buffer): | |
845 * buffer.c (DEFVAR_BUFFER_LOCAL_1): | |
846 * casetab.c: | |
847 * casetab.c (print_case_table): | |
848 * console.c (print_console): | |
849 * console.c (DEFVAR_CONSOLE_LOCAL_1): | |
850 * data.c (print_weak_list): | |
851 * data.c (print_weak_box): | |
852 * data.c (print_ephemeron): | |
853 * data.c (ephemeron_equal): | |
854 * database.c (print_database): | |
855 * database.c (finalize_database): | |
856 * device-msw.c (sync_printer_with_devmode): | |
857 * device-msw.c (print_devmode): | |
858 * device-msw.c (finalize_devmode): | |
859 * device.c: | |
860 * device.c (print_device): | |
861 * elhash.c: | |
862 * elhash.c (print_hash_table): | |
863 * eval.c (print_subr): | |
864 * eval.c (print_multiple_value): | |
865 * event-stream.c (event_stream_resignal_wakeup): | |
866 * events.c (clear_event_resource): | |
867 * events.c (zero_event): | |
868 * events.c (print_event): | |
869 * extents.c: | |
870 * extents.c (print_extent): | |
871 * file-coding.c (print_coding_system): | |
872 * font-mgr.c: | |
873 * font-mgr.c (Ffc_init): | |
874 * frame.c: | |
875 * frame.c (print_frame): | |
876 * gc.c: | |
877 * gc.c (GC_CHECK_NOT_FREE): | |
878 * glyphs.c: | |
879 * glyphs.c (print_image_instance): | |
880 * glyphs.c (print_glyph): | |
881 * gui.c (print_gui_item): | |
882 * gui.c (copy_gui_item): | |
883 * keymap.c (print_keymap): | |
884 * keymap.c (MARKED_SLOT): | |
885 * lisp.h: | |
886 * lisp.h (struct Lisp_String): | |
887 * lisp.h (DEFUN): | |
888 * lisp.h (DEFUN_NORETURN): | |
889 * lrecord.h: | |
890 * lrecord.h (NORMAL_LISP_OBJECT_UID): | |
891 * lrecord.h (struct lrecord_header): | |
892 * lrecord.h (set_lheader_implementation): | |
893 * lrecord.h (struct old_lcrecord_header): | |
894 * lrecord.h (struct free_lcrecord_header): | |
895 * marker.c (print_marker): | |
896 * mule-charset.c: | |
897 * mule-charset.c (print_charset): | |
898 * objects.c (print_color_instance): | |
899 * objects.c (print_font_instance): | |
900 * objects.c (finalize_font_instance): | |
901 * print.c (print_cons): | |
902 * print.c (printing_unreadable_object_fmt): | |
903 * print.c (printing_unreadable_lisp_object): | |
904 * print.c (external_object_printer): | |
905 * print.c (internal_object_printer): | |
906 * print.c (debug_p4): | |
907 * print.c (ext_print_begin): | |
908 * process.c (print_process): | |
909 * rangetab.c (print_range_table): | |
910 * rangetab.c (range_table_equal): | |
911 * scrollbar.c (free_scrollbar_instance): | |
912 * specifier.c (print_specifier): | |
913 * specifier.c (finalize_specifier): | |
914 * symbols.c (guts_of_unbound_marker): | |
915 * symeval.h: | |
916 * symeval.h (DEFVAR_SYMVAL_FWD): | |
917 * tooltalk.c: | |
918 * tooltalk.c (print_tooltalk_message): | |
919 * tooltalk.c (print_tooltalk_pattern): | |
920 * ui-gtk.c (ffi_object_printer): | |
921 * ui-gtk.c (emacs_gtk_object_printer): | |
922 * ui-gtk.c (emacs_gtk_boxed_printer): | |
923 * window.c (print_window): | |
924 * window.c (free_window_mirror): | |
925 * window.c (debug_print_window): | |
926 * xemacs.def.in.in: | |
927 (1) printing_unreadable_object -> printing_unreadable_object_fmt. | |
928 (2) printing_unreadable_lcrecord -> printing_unreadable_lisp_object | |
929 and fix up so it no longer requires an lcrecord. | |
930 | |
931 These previous changes eliminate most of the remaining places where | |
932 the terms `lcrecord' and `lrecord' occurred outside of specialized | |
933 code. | |
934 | |
935 (3) Fairly major change: Reduce the number of words in an lcrecord | |
936 from 3 to 2. The third word consisted of a uid that duplicated the | |
937 lrecord uid, and a single free bit, which was moved into the lrecord | |
938 structure. This reduces the size of the `uid' slot from 21 bits to | |
939 20 bits. Arguably this isn't enough -- we could easily have more than | |
940 1,000,000 or so objects created in a session. The answer is | |
941 (a) It doesn't really matter if we overflow the uid field because | |
942 it's only used for debugging, to identify an object uniquely | |
943 (or pretty much so). | |
944 (b) If we cared about it overflowing and wanted to reduce this, | |
945 we could make it so that cons, string, float and certain other | |
946 frob-block types that never print out the uid simply don't | |
947 store a uid in them and don't increment the lrecord_uid_counter. | |
948 | |
949 (4) In conjunction with (3), create new macro NORMAL_LISP_OBJECT_UID() | |
950 and use it to abstract out the differences between NEWGC and old-GC | |
951 in accessing the `uid' value from a "normal Lisp Object pointer". | |
952 | |
953 (5) In events.c, use zero_nonsized_lisp_object() in place of custom- | |
954 written equivalent. In font-mgr.c use external_object_printer() | |
955 in place of custom-written equivalents. | |
956 2010-03-07 Ben Wing <ben@xemacs.org> | |
957 | |
958 * number.c (bignum_finalize): | |
959 * number.c (ratio_finalize): | |
960 * number.c (bigfloat_finalize): | |
961 Fix the finalizers to go with the new calling sequence. Done | |
962 previously but somehow got lost. | |
963 | |
964 2010-03-06 Ben Wing <ben@xemacs.org> | |
965 | |
966 * frame.c (change_frame_size_1): | |
967 Add a comment about where FRAME_PIXWIDTH/FRAME_PIXHEIGHT is set. | |
968 | |
969 2010-03-05 Ben Wing <ben@xemacs.org> | |
970 | |
971 * frame.c: | |
972 * frame.c (Fframe_pixel_height): | |
973 * frame.c (Fframe_displayable_pixel_height): | |
974 * frame.c (Fframe_pixel_width): | |
975 * frame.c (Fframe_displayable_pixel_width): | |
976 * frame.c (Fset_frame_pixel_height): | |
977 * frame.c (Fset_frame_displayable_pixel_height): | |
978 * frame.c (Fset_frame_pixel_width): | |
979 * frame.c (Fset_frame_displayable_pixel_width): | |
980 * frame.c (get_frame_char_size): | |
981 * frame.c (change_frame_size_1): | |
982 Make it so that `frame-pixel-height', `set-frame-pixel-height', etc. | |
983 use updated values for the displayable or total pixel size that | |
984 will reflect what will happen as of the next redisplay. This | |
985 basically means using the character-cell height and converting | |
986 on-the-fly to pixel units. In the process, make sure FRAME_CHARWIDTH/ | |
987 FRAME_CHARHEIGHT are always correct and change | |
988 get_frame_char_size() to simply use them; the old logic in that | |
989 function was inlined into change_frame_size_1(), which is the only | |
990 place that needs the logic. | |
991 | |
992 2010-03-05 Ben Wing <ben@xemacs.org> | |
993 | |
994 * frame.c: | |
995 * frame.c (frame_live_p): | |
996 * frame.c (Fframep): | |
997 * frame.c (Fdisable_frame): | |
998 * frame.c (Fenable_frame): | |
999 * frame.c (Fraise_frame): | |
1000 * frame.c (Fframe_name): | |
1001 * frame.c (Fset_frame_height): | |
1002 * frame.c (internal_set_frame_size): | |
1003 * frame.c (adjust_frame_size): | |
1004 Add documentation on the different types of units used to measure | |
1005 frame size. | |
1006 | |
1007 Add section headers to the various sections. | |
1008 | |
1009 Rearrange the location of some functions in the file to keep | |
1010 related functions together. This especially goes for frame-sizing | |
1011 functions (internal_set_frame_size() and adjust_frame_size()), | |
1012 which have been moved so that they form a group with | |
1013 change_frame_size() and change_frame_size_1(). | |
1014 | |
1015 No functionality should change. | |
1016 | |
1017 2010-03-05 Ben Wing <ben@xemacs.org> | |
1018 | |
1019 * alloc.c: | |
1020 * alloc.c (old_alloc_sized_lcrecord): | |
1021 * alloc.c (very_old_free_lcrecord): | |
1022 * alloc.c (copy_lisp_object): | |
1023 * alloc.c (zero_sized_lisp_object): | |
1024 * alloc.c (zero_nonsized_lisp_object): | |
1025 * alloc.c (lisp_object_storage_size): | |
1026 * alloc.c (free_normal_lisp_object): | |
1027 * alloc.c (FREE_FIXED_TYPE_WHEN_NOT_IN_GC): | |
1028 * alloc.c (ALLOC_FROB_BLOCK_LISP_OBJECT): | |
1029 * alloc.c (Fcons): | |
1030 * alloc.c (noseeum_cons): | |
1031 * alloc.c (make_float): | |
1032 * alloc.c (make_bignum): | |
1033 * alloc.c (make_bignum_bg): | |
1034 * alloc.c (make_ratio): | |
1035 * alloc.c (make_ratio_bg): | |
1036 * alloc.c (make_ratio_rt): | |
1037 * alloc.c (make_bigfloat): | |
1038 * alloc.c (make_bigfloat_bf): | |
1039 * alloc.c (size_vector): | |
1040 * alloc.c (make_compiled_function): | |
1041 * alloc.c (Fmake_symbol): | |
1042 * alloc.c (allocate_extent): | |
1043 * alloc.c (allocate_event): | |
1044 * alloc.c (make_key_data): | |
1045 * alloc.c (make_button_data): | |
1046 * alloc.c (make_motion_data): | |
1047 * alloc.c (make_process_data): | |
1048 * alloc.c (make_timeout_data): | |
1049 * alloc.c (make_magic_data): | |
1050 * alloc.c (make_magic_eval_data): | |
1051 * alloc.c (make_eval_data): | |
1052 * alloc.c (make_misc_user_data): | |
1053 * alloc.c (Fmake_marker): | |
1054 * alloc.c (noseeum_make_marker): | |
1055 * alloc.c (size_string_direct_data): | |
1056 * alloc.c (make_uninit_string): | |
1057 * alloc.c (make_string_nocopy): | |
1058 * alloc.c (mark_lcrecord_list): | |
1059 * alloc.c (alloc_managed_lcrecord): | |
1060 * alloc.c (free_managed_lcrecord): | |
1061 * alloc.c (sweep_lcrecords_1): | |
1062 * alloc.c (malloced_storage_size): | |
1063 * buffer.c (allocate_buffer): | |
1064 * buffer.c (compute_buffer_usage): | |
1065 * buffer.c (DEFVAR_BUFFER_LOCAL_1): | |
1066 * buffer.c (nuke_all_buffer_slots): | |
1067 * buffer.c (common_init_complex_vars_of_buffer): | |
1068 * buffer.h (struct buffer_text): | |
1069 * buffer.h (struct buffer): | |
1070 * bytecode.c: | |
1071 * bytecode.c (make_compiled_function_args): | |
1072 * bytecode.c (size_compiled_function_args): | |
1073 * bytecode.h (struct compiled_function_args): | |
1074 * casetab.c (allocate_case_table): | |
1075 * casetab.h (struct Lisp_Case_Table): | |
1076 * charset.h (struct Lisp_Charset): | |
1077 * chartab.c (fill_char_table): | |
1078 * chartab.c (Fmake_char_table): | |
1079 * chartab.c (make_char_table_entry): | |
1080 * chartab.c (copy_char_table_entry): | |
1081 * chartab.c (Fcopy_char_table): | |
1082 * chartab.c (put_char_table): | |
1083 * chartab.h (struct Lisp_Char_Table_Entry): | |
1084 * chartab.h (struct Lisp_Char_Table): | |
1085 * console-gtk-impl.h (struct gtk_device): | |
1086 * console-gtk-impl.h (struct gtk_frame): | |
1087 * console-impl.h (struct console): | |
1088 * console-msw-impl.h (struct Lisp_Devmode): | |
1089 * console-msw-impl.h (struct mswindows_device): | |
1090 * console-msw-impl.h (struct msprinter_device): | |
1091 * console-msw-impl.h (struct mswindows_frame): | |
1092 * console-msw-impl.h (struct mswindows_dialog_id): | |
1093 * console-stream-impl.h (struct stream_console): | |
1094 * console-stream.c (stream_init_console): | |
1095 * console-tty-impl.h (struct tty_console): | |
1096 * console-tty-impl.h (struct tty_device): | |
1097 * console-tty.c (allocate_tty_console_struct): | |
1098 * console-x-impl.h (struct x_device): | |
1099 * console-x-impl.h (struct x_frame): | |
1100 * console.c (allocate_console): | |
1101 * console.c (nuke_all_console_slots): | |
1102 * console.c (DEFVAR_CONSOLE_LOCAL_1): | |
1103 * console.c (common_init_complex_vars_of_console): | |
1104 * data.c (make_weak_list): | |
1105 * data.c (make_weak_box): | |
1106 * data.c (make_ephemeron): | |
1107 * database.c: | |
1108 * database.c (struct Lisp_Database): | |
1109 * database.c (allocate_database): | |
1110 * database.c (finalize_database): | |
1111 * device-gtk.c (allocate_gtk_device_struct): | |
1112 * device-impl.h (struct device): | |
1113 * device-msw.c: | |
1114 * device-msw.c (mswindows_init_device): | |
1115 * device-msw.c (msprinter_init_device): | |
1116 * device-msw.c (finalize_devmode): | |
1117 * device-msw.c (allocate_devmode): | |
1118 * device-tty.c (allocate_tty_device_struct): | |
1119 * device-x.c (allocate_x_device_struct): | |
1120 * device.c: | |
1121 * device.c (nuke_all_device_slots): | |
1122 * device.c (allocate_device): | |
1123 * dialog-msw.c (handle_question_dialog_box): | |
1124 * elhash.c: | |
1125 * elhash.c (struct Lisp_Hash_Table): | |
1126 * elhash.c (finalize_hash_table): | |
1127 * elhash.c (make_general_lisp_hash_table): | |
1128 * elhash.c (Fcopy_hash_table): | |
1129 * elhash.h (htentry): | |
1130 * emacs.c (main_1): | |
1131 * eval.c: | |
1132 * eval.c (size_multiple_value): | |
1133 * event-stream.c (finalize_command_builder): | |
1134 * event-stream.c (allocate_command_builder): | |
1135 * event-stream.c (free_command_builder): | |
1136 * event-stream.c (event_stream_generate_wakeup): | |
1137 * event-stream.c (event_stream_resignal_wakeup): | |
1138 * event-stream.c (event_stream_disable_wakeup): | |
1139 * event-stream.c (event_stream_wakeup_pending_p): | |
1140 * events.h (struct Lisp_Timeout): | |
1141 * events.h (struct command_builder): | |
1142 * extents-impl.h: | |
1143 * extents-impl.h (struct extent_auxiliary): | |
1144 * extents-impl.h (struct extent_info): | |
1145 * extents-impl.h (set_extent_no_chase_aux_field): | |
1146 * extents-impl.h (set_extent_no_chase_normal_field): | |
1147 * extents.c: | |
1148 * extents.c (gap_array_marker): | |
1149 * extents.c (gap_array): | |
1150 * extents.c (extent_list_marker): | |
1151 * extents.c (extent_list): | |
1152 * extents.c (stack_of_extents): | |
1153 * extents.c (gap_array_make_marker): | |
1154 * extents.c (extent_list_make_marker): | |
1155 * extents.c (allocate_extent_list): | |
1156 * extents.c (SLOT): | |
1157 * extents.c (mark_extent_auxiliary): | |
1158 * extents.c (allocate_extent_auxiliary): | |
1159 * extents.c (attach_extent_auxiliary): | |
1160 * extents.c (size_gap_array): | |
1161 * extents.c (finalize_extent_info): | |
1162 * extents.c (allocate_extent_info): | |
1163 * extents.c (uninit_buffer_extents): | |
1164 * extents.c (allocate_soe): | |
1165 * extents.c (copy_extent): | |
1166 * extents.c (vars_of_extents): | |
1167 * extents.h: | |
1168 * faces.c (allocate_face): | |
1169 * faces.h (struct Lisp_Face): | |
1170 * faces.h (struct face_cachel): | |
1171 * file-coding.c: | |
1172 * file-coding.c (finalize_coding_system): | |
1173 * file-coding.c (sizeof_coding_system): | |
1174 * file-coding.c (Fcopy_coding_system): | |
1175 * file-coding.h (struct Lisp_Coding_System): | |
1176 * file-coding.h (MARKED_SLOT): | |
1177 * fns.c (size_bit_vector): | |
1178 * font-mgr.c: | |
1179 * font-mgr.c (finalize_fc_pattern): | |
1180 * font-mgr.c (print_fc_pattern): | |
1181 * font-mgr.c (Ffc_pattern_p): | |
1182 * font-mgr.c (Ffc_pattern_create): | |
1183 * font-mgr.c (Ffc_name_parse): | |
1184 * font-mgr.c (Ffc_name_unparse): | |
1185 * font-mgr.c (Ffc_pattern_duplicate): | |
1186 * font-mgr.c (Ffc_pattern_add): | |
1187 * font-mgr.c (Ffc_pattern_del): | |
1188 * font-mgr.c (Ffc_pattern_get): | |
1189 * font-mgr.c (fc_config_create_using): | |
1190 * font-mgr.c (fc_strlist_to_lisp_using): | |
1191 * font-mgr.c (fontset_to_list): | |
1192 * font-mgr.c (Ffc_config_p): | |
1193 * font-mgr.c (Ffc_config_up_to_date): | |
1194 * font-mgr.c (Ffc_config_build_fonts): | |
1195 * font-mgr.c (Ffc_config_get_cache): | |
1196 * font-mgr.c (Ffc_config_get_fonts): | |
1197 * font-mgr.c (Ffc_config_set_current): | |
1198 * font-mgr.c (Ffc_config_get_blanks): | |
1199 * font-mgr.c (Ffc_config_get_rescan_interval): | |
1200 * font-mgr.c (Ffc_config_set_rescan_interval): | |
1201 * font-mgr.c (Ffc_config_app_font_add_file): | |
1202 * font-mgr.c (Ffc_config_app_font_add_dir): | |
1203 * font-mgr.c (Ffc_config_app_font_clear): | |
1204 * font-mgr.c (size): | |
1205 * font-mgr.c (Ffc_config_substitute): | |
1206 * font-mgr.c (Ffc_font_render_prepare): | |
1207 * font-mgr.c (Ffc_font_match): | |
1208 * font-mgr.c (Ffc_font_sort): | |
1209 * font-mgr.c (finalize_fc_config): | |
1210 * font-mgr.c (print_fc_config): | |
1211 * font-mgr.h: | |
1212 * font-mgr.h (struct fc_pattern): | |
1213 * font-mgr.h (XFC_PATTERN): | |
1214 * font-mgr.h (struct fc_config): | |
1215 * font-mgr.h (XFC_CONFIG): | |
1216 * frame-gtk.c (allocate_gtk_frame_struct): | |
1217 * frame-impl.h (struct frame): | |
1218 * frame-msw.c (mswindows_init_frame_1): | |
1219 * frame-x.c (allocate_x_frame_struct): | |
1220 * frame.c (nuke_all_frame_slots): | |
1221 * frame.c (allocate_frame_core): | |
1222 * gc.c: | |
1223 * gc.c (GC_CHECK_NOT_FREE): | |
1224 * glyphs.c (finalize_image_instance): | |
1225 * glyphs.c (allocate_image_instance): | |
1226 * glyphs.c (Fcolorize_image_instance): | |
1227 * glyphs.c (allocate_glyph): | |
1228 * glyphs.c (unmap_subwindow_instance_cache_mapper): | |
1229 * glyphs.c (register_ignored_expose): | |
1230 * glyphs.h (struct Lisp_Image_Instance): | |
1231 * glyphs.h (struct Lisp_Glyph): | |
1232 * glyphs.h (struct glyph_cachel): | |
1233 * glyphs.h (struct expose_ignore): | |
1234 * gui.c (allocate_gui_item): | |
1235 * gui.h (struct Lisp_Gui_Item): | |
1236 * keymap.c (struct Lisp_Keymap): | |
1237 * keymap.c (make_keymap): | |
1238 * lisp.h: | |
1239 * lisp.h (struct Lisp_String_Direct_Data): | |
1240 * lisp.h (struct Lisp_String_Indirect_Data): | |
1241 * lisp.h (struct Lisp_Vector): | |
1242 * lisp.h (struct Lisp_Bit_Vector): | |
1243 * lisp.h (DECLARE_INLINE_LISP_BIT_VECTOR): | |
1244 * lisp.h (struct weak_box): | |
1245 * lisp.h (struct ephemeron): | |
1246 * lisp.h (struct weak_list): | |
1247 * lrecord.h: | |
1248 * lrecord.h (struct lrecord_implementation): | |
1249 * lrecord.h (MC_ALLOC_CALL_FINALIZER): | |
1250 * lrecord.h (struct lcrecord_list): | |
1251 * lstream.c (finalize_lstream): | |
1252 * lstream.c (sizeof_lstream): | |
1253 * lstream.c (Lstream_new): | |
1254 * lstream.c (Lstream_delete): | |
1255 * lstream.h (struct lstream): | |
1256 * marker.c: | |
1257 * marker.c (finalize_marker): | |
1258 * marker.c (compute_buffer_marker_usage): | |
1259 * mule-charset.c: | |
1260 * mule-charset.c (make_charset): | |
1261 * mule-charset.c (compute_charset_usage): | |
1262 * objects-impl.h (struct Lisp_Color_Instance): | |
1263 * objects-impl.h (struct Lisp_Font_Instance): | |
1264 * objects-tty-impl.h (struct tty_color_instance_data): | |
1265 * objects-tty-impl.h (struct tty_font_instance_data): | |
1266 * objects-tty.c (tty_initialize_color_instance): | |
1267 * objects-tty.c (tty_initialize_font_instance): | |
1268 * objects.c (finalize_color_instance): | |
1269 * objects.c (Fmake_color_instance): | |
1270 * objects.c (finalize_font_instance): | |
1271 * objects.c (Fmake_font_instance): | |
1272 * objects.c (reinit_vars_of_objects): | |
1273 * opaque.c: | |
1274 * opaque.c (sizeof_opaque): | |
1275 * opaque.c (make_opaque_ptr): | |
1276 * opaque.c (free_opaque_ptr): | |
1277 * opaque.h: | |
1278 * opaque.h (Lisp_Opaque): | |
1279 * opaque.h (Lisp_Opaque_Ptr): | |
1280 * print.c (printing_unreadable_lcrecord): | |
1281 * print.c (external_object_printer): | |
1282 * print.c (debug_p4): | |
1283 * process.c (finalize_process): | |
1284 * process.c (make_process_internal): | |
1285 * procimpl.h (struct Lisp_Process): | |
1286 * rangetab.c (Fmake_range_table): | |
1287 * rangetab.c (Fcopy_range_table): | |
1288 * rangetab.h (struct Lisp_Range_Table): | |
1289 * scrollbar.c: | |
1290 * scrollbar.c (create_scrollbar_instance): | |
1291 * scrollbar.c (compute_scrollbar_instance_usage): | |
1292 * scrollbar.h (struct scrollbar_instance): | |
1293 * specifier.c (finalize_specifier): | |
1294 * specifier.c (sizeof_specifier): | |
1295 * specifier.c (set_specifier_caching): | |
1296 * specifier.h (struct Lisp_Specifier): | |
1297 * specifier.h (struct specifier_caching): | |
1298 * symeval.h: | |
1299 * symeval.h (SYMBOL_VALUE_MAGIC_P): | |
1300 * symeval.h (DEFVAR_SYMVAL_FWD): | |
1301 * symsinit.h: | |
1302 * syntax.c (init_buffer_syntax_cache): | |
1303 * syntax.h (struct syntax_cache): | |
1304 * toolbar.c: | |
1305 * toolbar.c (allocate_toolbar_button): | |
1306 * toolbar.c (update_toolbar_button): | |
1307 * toolbar.h (struct toolbar_button): | |
1308 * tooltalk.c (struct Lisp_Tooltalk_Message): | |
1309 * tooltalk.c (make_tooltalk_message): | |
1310 * tooltalk.c (struct Lisp_Tooltalk_Pattern): | |
1311 * tooltalk.c (make_tooltalk_pattern): | |
1312 * ui-gtk.c: | |
1313 * ui-gtk.c (allocate_ffi_data): | |
1314 * ui-gtk.c (emacs_gtk_object_finalizer): | |
1315 * ui-gtk.c (allocate_emacs_gtk_object_data): | |
1316 * ui-gtk.c (allocate_emacs_gtk_boxed_data): | |
1317 * ui-gtk.h: | |
1318 * window-impl.h (struct window): | |
1319 * window-impl.h (struct window_mirror): | |
1320 * window.c (finalize_window): | |
1321 * window.c (allocate_window): | |
1322 * window.c (new_window_mirror): | |
1323 * window.c (mark_window_as_deleted): | |
1324 * window.c (make_dummy_parent): | |
1325 * window.c (compute_window_mirror_usage): | |
1326 * window.c (compute_window_usage): | |
1327 | |
1328 Overall point of this change and previous ones in this repository: | |
1329 | |
1330 (1) Introduce new, clearer terminology: everything other than int | |
1331 or char is a "record" object, which comes in two types: "normal | |
1332 objects" and "frob-block objects". Fix up all places that | |
1333 referred to frob-block objects as "simple", "basic", etc. | |
1334 | |
1335 (2) Provide an advertised interface for doing operations on Lisp | |
1336 objects, including creating new types, that is clean and | |
1337 consistent in its naming, uses the above-referenced terms and | |
1338 avoids referencing "lrecords", "old lcrecords", etc., which should | |
1339 hide under the surface. | |
1340 | |
1341 (3) Make the size_in_bytes and finalizer methods take a | |
1342 Lisp_Object rather than a void * for consistency with other methods. | |
1343 | |
1344 (4) Separate finalizer method into finalizer and disksaver, so | |
1345 that normal finalize methods don't have to worry about disksaving. | |
1346 | |
1347 Other specifics: | |
1348 | |
1349 (1) Renaming: | |
1350 | |
1351 LISP_OBJECT_HEADER -> NORMAL_LISP_OBJECT_HEADER | |
1352 ALLOC_LISP_OBJECT -> ALLOC_NORMAL_LISP_OBJECT | |
1353 implementation->basic_p -> implementation->frob_block_p | |
1354 ALLOCATE_FIXED_TYPE_AND_SET_IMPL -> ALLOC_FROB_BLOCK_LISP_OBJECT | |
1355 *FCCONFIG*, wrap_fcconfig -> *FC_CONFIG*, wrap_fc_config | |
1356 *FCPATTERN*, wrap_fcpattern -> *FC_PATTERN*, wrap_fc_pattern | |
1357 | |
1358 (the last two changes make the naming of these macros consistent | |
1359 with the naming of all other macros, since the objects are named | |
1360 fc-config and fc-pattern with a hyphen) | |
1361 | |
1362 (2) Lots of documentation fixes in lrecord.h. | |
1363 | |
1364 (3) Eliminate macros for copying, freeing, zeroing objects, getting | |
1365 their storage size. Instead, new functions: | |
1366 | |
1367 zero_sized_lisp_object() | |
1368 zero_nonsized_lisp_object() | |
1369 lisp_object_storage_size() | |
1370 free_normal_lisp_object() | |
1371 (copy_lisp_object() already exists) | |
1372 LISP_OBJECT_FROB_BLOCK_P() (actually a macro) | |
1373 | |
1374 Eliminated: | |
1375 | |
1376 free_lrecord() | |
1377 zero_lrecord() | |
1378 copy_lrecord() | |
1379 copy_sized_lrecord() | |
1380 old_copy_lcrecord() | |
1381 old_copy_sized_lcrecord() | |
1382 old_zero_lcrecord() | |
1383 old_zero_sized_lcrecord() | |
1384 LISP_OBJECT_STORAGE_SIZE() | |
1385 COPY_SIZED_LISP_OBJECT() | |
1386 COPY_SIZED_LCRECORD() | |
1387 COPY_LISP_OBJECT() | |
1388 ZERO_LISP_OBJECT() | |
1389 FREE_LISP_OBJECT() | |
1390 | |
1391 (4) Catch the remaining places where lrecord stuff was used directly | |
1392 and use the advertised interface, e.g. alloc_sized_lrecord() -> | |
1393 ALLOC_SIZED_LISP_OBJECT(). | |
1394 | |
1395 (5) Make certain statically-declared pseudo-objects | |
1396 (buffer_local_flags, console_local_flags) have their lheader | |
1397 initialized correctly, so things like copy_lisp_object() can work | |
1398 on them. Make extent_auxiliary_defaults a proper heap object | |
1399 Vextent_auxiliary_defaults, and make extent auxiliaries dumpable | |
1400 so that this object can be dumped. allocate_extent_auxiliary() | |
1401 now just creates the object, and attach_extent_auxiliary() | |
1402 creates an extent auxiliary and attaches to an extent, like the | |
1403 old allocate_extent_auxiliary(). | |
1404 | |
1405 (6) Create EXTENT_AUXILIARY_SLOTS macro, similar to the foo-slots.h | |
1406 files but in a macro instead of a file. The purpose is to avoid | |
1407 duplication when iterating over all the slots in an extent auxiliary. | |
1408 Use it. | |
1409 | |
1410 (7) In lstream.c, don't zero out object after allocation because | |
1411 allocation routines take care of this. | |
1412 | |
1413 (8) In marker.c, fix a mistake in computing marker overhead. | |
1414 | |
1415 (9) In print.c, clean up printing_unreadable_lcrecord(), | |
1416 external_object_printer() to avoid lots of ifdef NEW_GC's. | |
1417 | |
1418 (10) Separate toolbar-button allocation into a separate | |
1419 allocate_toolbar_button() function for use in the example code | |
1420 in lrecord.h. | |
1421 | |
1422 2010-01-20 Ben Wing <ben@xemacs.org> | |
1423 | |
1424 * alloc.c: | |
1425 * alloc.c (very_old_free_lcrecord): | |
1426 * alloc.c (disksave_object_finalization_1): | |
1427 * alloc.c (make_lcrecord_list): | |
1428 * alloc.c (alloc_managed_lcrecord): | |
1429 * alloc.c (free_managed_lcrecord): | |
1430 * alloc.c (sweep_lcrecords_1): | |
1431 * buffer.c: | |
1432 * bytecode.c: | |
1433 * bytecode.c (Fcompiled_function_p): | |
1434 * chartab.c: | |
1435 * console-impl.h: | |
1436 * console-impl.h (CONSOLE_TYPE_P): | |
1437 * console.c: | |
1438 * console.c (set_quit_events): | |
1439 * data.c: | |
1440 * data.c (Fmake_ephemeron): | |
1441 * database.c: | |
1442 * database.c (finalize_database): | |
1443 * database.c (Fclose_database): | |
1444 * device-msw.c: | |
1445 * device-msw.c (finalize_devmode): | |
1446 * device-msw.c (allocate_devmode): | |
1447 * device.c: | |
1448 * elhash.c: | |
1449 * elhash.c (finalize_hash_table): | |
1450 * eval.c: | |
1451 * eval.c (bind_multiple_value_limits): | |
1452 * event-stream.c: | |
1453 * event-stream.c (finalize_command_builder): | |
1454 * events.c: | |
1455 * events.c (mark_event): | |
1456 * extents.c: | |
1457 * extents.c (finalize_extent_info): | |
1458 * extents.c (uninit_buffer_extents): | |
1459 * faces.c: | |
1460 * file-coding.c: | |
1461 * file-coding.c (finalize_coding_system): | |
1462 * file-coding.h: | |
1463 * file-coding.h (struct coding_system_methods): | |
1464 * file-coding.h (struct detector): | |
1465 * floatfns.c: | |
1466 * floatfns.c (extract_float): | |
1467 * fns.c: | |
1468 * fns.c (Fidentity): | |
1469 * font-mgr.c (finalize_fc_pattern): | |
1470 * font-mgr.c (finalize_fc_config): | |
1471 * frame.c: | |
1472 * glyphs.c: | |
1473 * glyphs.c (finalize_image_instance): | |
1474 * glyphs.c (unmap_subwindow_instance_cache_mapper): | |
1475 * gui.c: | |
1476 * gui.c (gui_error): | |
1477 * keymap.c: | |
1478 * lisp.h (struct Lisp_Symbol): | |
1479 * lrecord.h: | |
1480 * lrecord.h (struct lrecord_implementation): | |
1481 * lrecord.h (MC_ALLOC_CALL_FINALIZER): | |
1482 * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE): | |
1483 * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT): | |
1484 * lrecord.h (DEFINE_DUMPABLE_GENERAL_LISP_OBJECT): | |
1485 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT): | |
1486 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_GENERAL_LISP_OBJECT): | |
1487 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT): | |
1488 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_GENERAL_LISP_OBJECT): | |
1489 * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT): | |
1490 * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT): | |
1491 * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT): | |
1492 * lrecord.h (DEFINE_NODUMP_LISP_OBJECT): | |
1493 * lrecord.h (DEFINE_NODUMP_GENERAL_LISP_OBJECT): | |
1494 * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT): | |
1495 * lrecord.h (DEFINE_NODUMP_SIZABLE_GENERAL_LISP_OBJECT): | |
1496 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT): | |
1497 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_GENERAL_LISP_OBJECT): | |
1498 * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT): | |
1499 * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT): | |
1500 * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT): | |
1501 * lrecord.h (MAKE_LISP_OBJECT): | |
1502 * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT): | |
1503 * lrecord.h (DEFINE_DUMPABLE_MODULE_GENERAL_LISP_OBJECT): | |
1504 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT): | |
1505 * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_GENERAL_LISP_OBJECT): | |
1506 * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT): | |
1507 * lrecord.h (DEFINE_NODUMP_MODULE_GENERAL_LISP_OBJECT): | |
1508 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT): | |
1509 * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_GENERAL_LISP_OBJECT): | |
1510 * lrecord.h (MAKE_MODULE_LISP_OBJECT): | |
1511 * lstream.c: | |
1512 * lstream.c (finalize_lstream): | |
1513 * lstream.c (disksave_lstream): | |
1514 * marker.c: | |
1515 * marker.c (finalize_marker): | |
1516 * mule-charset.c (make_charset): | |
1517 * number.c: | |
1518 * objects.c: | |
1519 * objects.c (finalize_color_instance): | |
1520 * objects.c (finalize_font_instance): | |
1521 * opaque.c: | |
1522 * opaque.c (make_opaque_ptr): | |
1523 * process-nt.c: | |
1524 * process-nt.c (nt_finalize_process_data): | |
1525 * process-nt.c (nt_deactivate_process): | |
1526 * process.c: | |
1527 * process.c (finalize_process): | |
1528 * procimpl.h (struct process_methods): | |
1529 * scrollbar.c: | |
1530 * scrollbar.c (free_scrollbar_instance): | |
1531 * specifier.c (finalize_specifier): | |
1532 * symbols.c: | |
1533 * toolbar.c: | |
1534 * toolbar.c (Ftoolbar_button_p): | |
1535 * tooltalk.c: | |
1536 * ui-gtk.c: | |
1537 * ui-gtk.c (emacs_gtk_object_finalizer): | |
1538 * ui-gtk.c (allocate_emacs_gtk_boxed_data): | |
1539 * window.c: | |
1540 * window.c (finalize_window): | |
1541 * window.c (mark_window_as_deleted): | |
1542 | |
1543 Separate out regular and disksave finalization. Instead of a | |
1544 FOR_DISKSAVE argument to the finalizer, create a separate object | |
1545 method `disksaver'. Make `finalizer' have only one argument. | |
1546 | |
1547 Go through and separate out all finalize methods into finalize | |
1548 and disksave. Delete lots of thereby redundant disksave checking. | |
1549 Delete places that signal an error if we attempt to disksave -- | |
1550 all of these objects are non-dumpable and we will get an error | |
1551 from pdump anyway if we attempt to dump them. After this is done, | |
1552 only one object remains that has a disksave method -- lstream. | |
1553 | |
1554 Change DEFINE_*_LISP_OBJECT_WITH_PROPS to DEFINE_*_GENERAL_LISP_OBJECT, | |
1555 which is used for specifying either property methods or disksave | |
1556 methods (or in the future, any other less-used methods). | |
1557 | |
1558 Remove the for_disksave argument to finalize_process_data. Don't | |
1559 provide a disksaver for processes because no one currently needs | |
1560 it. | |
1561 | |
1562 Clean up various places where objects didn't provide a print method. | |
1563 It was made mandatory in previous changes, and all methods now | |
1564 either provide their own print method or use internal_object_printer | |
1565 or external_object_printer. | |
1566 | |
1567 Change the definition of CONSOLE_LIVE_P to use the contype enum | |
1568 rather than looking into the conmeths structure -- in some weird | |
1569 situations with dead objects, the conmeths structure is NULL, | |
1570 and printing such objects from debug_print() will crash if we try | |
1571 to look into the conmeths structure. | |
1572 | |
1573 | |
1574 2005-11-22 Ben Wing <ben@xemacs.org> | |
1575 | |
1576 * alloc.c: | |
1577 * alloc.c (assert_proper_sizing): | |
1578 * alloc.c (alloc_sized_lrecord_1): | |
1579 * alloc.c (alloc_sized_lrecord): | |
1580 * alloc.c (noseeum_alloc_sized_lrecord): | |
1581 * alloc.c (alloc_lrecord): | |
1582 * alloc.c (old_alloc_sized_lcrecord): | |
1583 * alloc.c (make_vector_internal): | |
1584 * alloc.c (make_bit_vector_internal): | |
1585 * alloc.c (alloc_automanaged_sized_lcrecord): | |
1586 * buffer.c (allocate_buffer): | |
1587 * buffer.c (DEFVAR_BUFFER_LOCAL_1): | |
1588 * buffer.c (common_init_complex_vars_of_buffer): | |
1589 * casetab.c (allocate_case_table): | |
1590 * chartab.c (Fmake_char_table): | |
1591 * chartab.c (make_char_table_entry): | |
1592 * chartab.c (copy_char_table_entry): | |
1593 * chartab.c (Fcopy_char_table): | |
1594 * console.c (allocate_console): | |
1595 * console.c (DEFVAR_CONSOLE_LOCAL_1): | |
1596 * console.c (common_init_complex_vars_of_console): | |
1597 * data.c (make_weak_list): | |
1598 * data.c (make_weak_box): | |
1599 * data.c (make_ephemeron): | |
1600 * database.c (allocate_database): | |
1601 * device-msw.c (allocate_devmode): | |
1602 * device.c (allocate_device): | |
1603 * dialog-msw.c (handle_question_dialog_box): | |
1604 * elhash.c (make_general_lisp_hash_table): | |
1605 * elhash.c (Fcopy_hash_table): | |
1606 * emacs.c (main_1): | |
1607 * event-stream.c: | |
1608 * event-stream.c (allocate_command_builder): | |
1609 * event-stream.c (free_command_builder): | |
1610 * event-stream.c (mark_timeout): | |
1611 * event-stream.c (event_stream_generate_wakeup): | |
1612 * event-stream.c (event_stream_resignal_wakeup): | |
1613 * event-stream.c (event_stream_disable_wakeup): | |
1614 * event-stream.c (reinit_vars_of_event_stream): | |
1615 * extents.c (allocate_extent_auxiliary): | |
1616 * extents.c (allocate_extent_info): | |
1617 * extents.c (copy_extent): | |
1618 * faces.c (allocate_face): | |
1619 * file-coding.c (allocate_coding_system): | |
1620 * frame.c (allocate_frame_core): | |
1621 * glyphs.c (allocate_image_instance): | |
1622 * glyphs.c (allocate_glyph): | |
1623 * gui.c (allocate_gui_item): | |
1624 * keymap.c (make_keymap): | |
1625 * lrecord.h: | |
1626 * lrecord.h (ALLOC_LCRECORD): | |
1627 * lrecord.h (ALLOC_SIZED_LCRECORD): | |
1628 * lrecord.h (struct old_lcrecord_header): | |
1629 * lrecord.h (old_alloc_lcrecord_type): | |
1630 * lrecord.h (alloc_lrecord_type): | |
1631 * lrecord.h (noseeum_alloc_lrecord_type): | |
1632 * lstream.c (Lstream_new): | |
1633 * mule-charset.c (make_charset): | |
1634 * objects.c (Fmake_color_instance): | |
1635 * objects.c (Fmake_font_instance): | |
1636 * objects.c (reinit_vars_of_objects): | |
1637 * opaque.c (make_opaque): | |
1638 * opaque.c (make_opaque_ptr): | |
1639 * process.c (make_process_internal): | |
1640 * rangetab.c (Fmake_range_table): | |
1641 * rangetab.c (Fcopy_range_table): | |
1642 * scrollbar.c (create_scrollbar_instance): | |
1643 * specifier.c (make_specifier_internal): | |
1644 * symbols.c (Fdefvaralias): | |
1645 * toolbar.c (update_toolbar_button): | |
1646 * tooltalk.c (make_tooltalk_message): | |
1647 * tooltalk.c (make_tooltalk_pattern): | |
1648 * ui-gtk.c (allocate_ffi_data): | |
1649 * ui-gtk.c (allocate_emacs_gtk_object_data): | |
1650 * ui-gtk.c (allocate_emacs_gtk_boxed_data): | |
1651 * window.c (allocate_window): | |
1652 * window.c (new_window_mirror): | |
1653 * window.c (make_dummy_parent): | |
1654 Create a simpler interface for allocating/declaring Lisp objects; | |
1655 documented in lrecord.h. | |
1656 | |
1657 ALLOC_LCRECORD_TYPE -> ALLOC_LISP_OBJECT (returns a Lisp object | |
1658 rather than a pointer), | |
1659 BASIC_ALLOC_LCRECORD -> ALLOC_SIZED_LISP_OBJECT | |
1660 DEFINE_LRECORD_IMPLEMENTATION -> DEFINE_*_LISP_OBJECT | |
1661 DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION -> DEFINE_*SIZABLE_*LISP_OBJECT | |
1662 DEFINE_LRECORD_*IMPLEMENTATION_WITH_PROPS -> DEFINE_*GENERAL_LISP_OBJECT | |
1663 DEFINE_BASIC_LRECORD_IMPLEMENTATION -> DEFINE_*FROB_BLOCK_LISP_OBJECT | |
1664 DEFINE_DUMPABLE_*/DEFINE_NODUMP_* instead of a 0 or 1 dumpable flag | |
1665 DEFINE_*INTERNAL_* for "internal" Lisp objects (shouldn't escape | |
1666 to Lisp) | |
1667 DEFINE_EXTERNAL_* -> DEFINE_MODULE_* | |
1668 MAKE_LRECORD_IMPLEMENTATION -> MAKE_LISP_OBJECT | |
1669 MAKE_EXTERNAL_LRECORD_IMPLEMENTATION -> MAKE_MODULE_LISP_OBJECT | |
1670 DECLARE_LRECORD -> DECLARE_LISP_OBJECT | |
1671 INIT_LRECORD_IMPLEMENTATION -> INIT_LISP_OBJECT | |
1672 alloc_lrecord -> alloc_sized_lrecord (since it takes a size) | |
1673 | |
1674 Dynarr_newf, Dynarr_lisp_newf: takes a Bytecount instead of an int | |
1675 | |
1676 2010-03-05 Ben Wing <ben@xemacs.org> | |
1677 | |
1678 * mule-coding.c: | |
1679 * mule-coding.c (iso2022_encode): | |
1680 Horrible bug: `escape-quoted' was failing to escape-quote special | |
1681 characters in the 0x80 - 0x9F range. Who knows what breakage ensued? | |
1682 SAME BUG IN XEMACS 21.4; MUST BE FIXED THERE TOO. | |
1683 | |
1684 2010-03-03 Ben Wing <ben@xemacs.org> | |
1685 | |
1686 * lrecord.h: Fix outdated comment. | |
1687 | |
1688 2010-03-03 Ben Wing <ben@xemacs.org> | |
1689 | |
1690 * emacs.c: | |
1691 * emacs.c (assert_equal_failed): | |
1692 * lisp.h: | |
1693 * lisp.h (assert_equal): | |
1694 New fun assert_equal, asserting that two values == each other, and | |
1695 printing out both values upon failure. | |
1696 | |
1697 * frame-gtk.c (gtk_initialize_frame_size): | |
1698 * frame-impl.h: | |
1699 * frame-impl.h (FRAME_TOP_INTERNAL_BORDER_START): | |
1700 * frame-impl.h (FRAME_BOTTOM_INTERNAL_BORDER_START): | |
1701 * frame-impl.h (FRAME_LEFT_INTERNAL_BORDER_START): | |
1702 * frame-impl.h (FRAME_PANED_TOP_EDGE): | |
1703 * frame-impl.h (FRAME_NONPANED_SIZE): | |
1704 * frame-x.c (x_initialize_frame_size): | |
1705 * frame.c: | |
1706 * gutter.c (get_gutter_coords): | |
1707 * gutter.c (calculate_gutter_size): | |
1708 * gutter.h: | |
1709 * gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS): | |
1710 * gutter.h (FRAME_TOP_GUTTER_BOUNDS): | |
1711 * input-method-xlib.c: | |
1712 * input-method-xlib.c (XIM_SetGeometry): | |
1713 * redisplay-output.c (clear_left_border): | |
1714 * redisplay-output.c (clear_right_border): | |
1715 * redisplay-output.c (redisplay_output_pixmap): | |
1716 * redisplay-output.c (redisplay_clear_region): | |
1717 * redisplay-output.c (redisplay_clear_top_of_window): | |
1718 * redisplay-output.c (redisplay_clear_to_window_end): | |
1719 * redisplay-xlike-inc.c (XLIKE_clear_frame): | |
1720 * redisplay.c: | |
1721 * redisplay.c (UPDATE_CACHE_RETURN): | |
1722 * redisplay.c (pixel_to_glyph_translation): | |
1723 * toolbar.c (update_frame_toolbars_geometry): | |
1724 * window.c (Fwindow_pixel_edges): | |
1725 Get rid of some redundant macros. Consistently use the | |
1726 FRAME_TOP_*_START, FRAME_RIGHT_*_END, etc. format. Rename | |
1727 FRAME_*_BORDER_* to FRAME_*_INTERNAL_BORDER_*. Comment out | |
1728 FRAME_BOTTOM_* for gutters and the paned area due to the | |
1729 uncertainty over where the paned area actually begins. (Eventually | |
1730 we should probably move the gutters outside the minibuffer so that | |
1731 the paned area is contiguous.) Use FRAME_PANED_* more often in the | |
1732 code to make things clearer. | |
1733 | |
1734 Update the diagram to show that the bottom gutter is inside the | |
1735 minibuffer (!) and that there are "junk boxes" when you have left | |
1736 and/or right gutters (dead boxes that are mistakenly left uncleared, | |
1737 unlike the corresponding scrollbar dead boxes). Update the text | |
1738 appropriately to cover the bottom gutter position, etc. | |
1739 | |
1740 Rewrite gutter-geometry code to use the FRAME_*_GUTTER_* in place of | |
1741 equivalent expressions referencing other frame elements, to make the | |
1742 code more portable in case we move around the gutter location. | |
1743 | |
1744 Cleanup FRAME_*_GUTTER_BOUNDS() in gutter.h. | |
1745 | |
1746 Add some #### GEOM! comments where I think code is incorrect -- | |
1747 typically, it wasn't fixed up properly when the gutter was added. | |
1748 | |
1749 Some cosmetic changes. | |
1750 | |
1751 2010-03-02 Ben Wing <ben@xemacs.org> | |
1752 | |
1753 * lisp.h: | |
1754 * text.h: | |
1755 Move inclusion point of text.h earlier in lisp.h -- just before | |
1756 the definition of characters, which needs some of the stuff in | |
1757 text.h. With text.h later, some basic character properties had to | |
1758 be defined in lisp.h -- put them back into text.h where they belong. | |
1759 Move some text in lisp.h at the point of text.h inclusion into | |
1760 text.h -- it serves as a mini-introduction. | |
1761 | |
1762 2010-03-02 Ben Wing <ben@xemacs.org> | |
1763 | |
1764 * Makefile.in.in: | |
1765 * Makefile.in.in (objs): | |
1766 glyphs-shared.o, glyphs-eimage.o only needed when HAVE_WINDOW_SYSTEM. | |
1767 glyphs-widget.o should be too, but we need a bit of work ifdeffing | |
1768 out the subwindow stuff from redisplay.c et al. | |
1769 | |
1770 * bytecode.c (init_opcode_table_multi_op): | |
1771 Change var name to avoid shadowing with `basename'. | |
1772 | |
1773 * emacs.c (main_1): | |
1774 Don't call init/etc. routines for glyphs-shared, glyphs-eimage unless | |
1775 HAVE_WINDOW_SYSTEM is defined. | |
1776 | |
1777 * linuxplay.c: | |
1778 * linuxplay.c (sighandler): | |
1779 * vdb-posix.c (vdb_fault_handler): | |
1780 Use const for variables holding string constants to avoid C++ | |
1781 warnings. | |
1782 | |
1783 2010-03-02 Jerry James <james@xemacs.org> | |
1784 | |
1785 * lread.c (read_atom): Signal a read error upon encountering a | |
1786 ratio constant with a zero denominator. | |
1787 | |
1788 2010-03-03 Aidan Kehoe <kehoea@parhasard.net> | |
1789 | |
1790 * fns.c (Fsubstring): Removed. | |
1791 * search.c (Freplace_match): | |
1792 * minibuf.c (Ftry_completion): | |
1793 * lisp.h: | |
1794 * keymap.c (ensure_meta_prefix_char_keymapp): | |
1795 * dired.c (user_name_completion, file_name_completion): | |
1796 * console-x.c (x_canonicalize_console_connection): | |
1797 * bytecode.c (Bsubseq): | |
1798 * bytecode-ops.h (subseq): | |
1799 Move #'substring to Lisp, as an alias for #'subseq; change all | |
1800 C Fsubstring() calls to Fsubseq(), change the Bsubstring bytecode | |
1801 to Bsubseq. | |
1802 | |
1803 Motivation; not accepting vectors in #'substring is incompatible | |
1804 with GNU, and Common Lisp prefers #'subseq, it has no #'substring. | |
1805 | |
1806 2010-03-02 Aidan Kehoe <kehoea@parhasard.net> | |
1807 | |
1808 * eval.c (print_multiple_value): | |
1809 Say #<INTERNAL OBJECT (XEmacs bug?) ...> when printing these, for | |
1810 consistency with the rest of the print code. | |
1811 | |
1812 2010-03-01 Aidan Kehoe <kehoea@parhasard.net> | |
1813 | |
1814 * lisp.h (PARSE_KEYWORDS): New macro, for parsing keyword | |
1815 arguments from C subrs. | |
1816 * elhash.c (Fmake_hash_table): Use it. | |
1817 * general-slots.h (Q_allow_other_keys): Add this symbol. | |
1818 * eval.c (non_nil_allow_other_keys_p): | |
1819 (invalid_keyword_argument): | |
1820 New functions, called from the keyword argument parsing code. | |
1821 * data.c (init_errors_once_early): | |
1822 Add the new invalid-keyword-argument error here. | |
1823 | |
1824 2010-02-26 Aidan Kehoe <kehoea@parhasard.net> | |
1825 | |
1826 * file-coding.c (Fmake_coding_system_internal): | |
1827 Be somewhat clearer in this docstring, especially for the sake of | |
1828 people running non-Mule builds who will see this docstring when | |
1829 they do F1 f make-coding-system RET. | |
1830 | |
1831 2010-02-25 Didier Verna <didier@xemacs.org> | |
1832 | |
1833 The background-placement face property. | |
1834 * console-x-impl.h (struct x_frame): Add new slots x and y. | |
1835 * console-x-impl.h (FRAME_X_X, FRAME_X_Y): New slot accessors. | |
1836 * console-gtk-impl.h: Fake something similar for potential port. | |
1837 * frame-x.c (x_get_frame_text_position): New function. | |
1838 * frame-x.c (x_init_frame_3): Use it. | |
1839 * event-Xt.c (emacs_Xt_handle_magic_event): Eat spurious | |
1840 ConfigureNotify events, get the frame position and mark frame | |
1841 faces changed. | |
1842 * objects-impl.h: The face_background_placement_specifier | |
1843 structure and its accessors. | |
1844 * objects.c: New symbols Qabsolute and Qrelative. | |
1845 * objects.c (face_background_placement_create): | |
1846 * objects.c (face_background_placement_mark): | |
1847 * objects.c (face_background_placement_instantiate): | |
1848 * objects.c (face_background_placement_validate): | |
1849 * objects.c (face_background_placement_after_change): | |
1850 * objects.c (set_face_background_placement_attached_to): New. | |
1851 * objects.h (set_face_background_palcement_attached_to): Declare | |
1852 the one above. | |
1853 * objects.c (syms_of_objects): | |
1854 * objects.c (specifier_type_create_objects): | |
1855 * objects.c (reinit_specifier_type_create_objects): | |
1856 * objects.c (reinit_vars_of_objects): Update for the modifications | |
1857 above. | |
1858 * console-xlike-inc.h (XLIKE_GC_TS_X_ORIGIN, XLIKE_GC_TS_X_ORIGIN): | |
1859 New X11/Gtk compatibility macros. | |
1860 * redisplay-xlike-inc.c (XLIKE_get_gc): Add a background placement | |
1861 argument and handle it. | |
1862 * gtk-glue.c (face_to_gc): | |
1863 * redisplay-xlike-inc.c (XLIKE_output_string): | |
1864 * redisplay-xlike-inc.c (XLIKE_output_pixmap): | |
1865 * redisplay-xlike-inc.c (XLIKE_output_blank): | |
1866 * redisplay-xlike-inc.c (XLIKE_output_horizontal_line): | |
1867 * redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Update | |
1868 accordingly. | |
1869 * console-impl.h (struct console_methods): Add a background | |
1870 placement (Lisp_Object) argument to the clear_region method. | |
1871 * console-stream.c (stream_clear_region): | |
1872 * redisplay-tty.c (tty_clear_region): | |
1873 * redisplay-msw.c (mswindows_clear_region): | |
1874 * redisplay-xlike-inc.c (XLIKE_clear_region): Update accordingly. | |
1875 * redisplay-output.c (redisplay_clear_region): Handle the | |
1876 background placement property and update the call to the | |
1877 clear_region method. | |
1878 * faces.h (struct Lisp_Face): | |
1879 * faces.h (struct face_cachel): Add a background placement slot. | |
1880 * faces.h (WINDOW_FACE_CACHEL_BACKGROUND_PLACEMENT): New accessor. | |
1881 * faces.c (mark_face): | |
1882 * faces.c (face_equal): | |
1883 * faces.c (face_getprop): | |
1884 * faces.c (face_putprop): | |
1885 * faces.c (face_remprop): | |
1886 * faces.c (face_plist): | |
1887 * faces.c (reset_face): | |
1888 * faces.c (mark_face_cachels): | |
1889 * faces.c (update_face_cachel_data): | |
1890 * faces.c (merge_face_cachel_data): | |
1891 * faces.c (reset_face_cachel): | |
1892 * faces.c (Fmake_face): | |
1893 * faces.c (Fcopy_face): Handle the background placement property. | |
1894 * faces.c (syms_of_faces): | |
1895 * faces.c (vars_of_faces): | |
1896 * faces.c (complex_vars_of_faces): Update accordingly. | |
1897 | |
1898 2010-02-25 Ben Wing <ben@xemacs.org> | |
1899 | |
1900 * frame-impl.h: | |
1901 Create some new macros for more clearly getting the size/edges | |
1902 of various rectangles surrounding the paned area. | |
1903 * frame.c (change_frame_size_1): | |
1904 Use the new macros. Clean up change_frame_size_1 and make sure | |
1905 the internal border width gets taken into account -- that was what | |
1906 was causing the clipped bottom and right. | |
1907 | |
1908 2010-02-25 Ben Wing <ben@xemacs.org> | |
1909 | |
1910 * EmacsFrame.c (EmacsFrameSetValues): | |
1911 * frame-impl.h: | |
1912 * frame-impl.h (struct frame): | |
1913 * frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_HEIGHT): | |
1914 * frame-impl.h (FRAME_THEORETICAL_TOP_TOOLBAR_BORDER_WIDTH): | |
1915 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_HEIGHT): | |
1916 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BORDER_WIDTH): | |
1917 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_VISIBLE): | |
1918 * frame-impl.h (FRAME_REAL_TOP_TOOLBAR_BOUNDS): | |
1919 * frame.h: | |
1920 * frame.h (enum edge_pos): | |
1921 * gutter.c: | |
1922 * gutter.c (get_gutter_coords): | |
1923 * gutter.c (display_boxes_in_gutter_p): | |
1924 * gutter.c (construct_window_gutter_spec): | |
1925 * gutter.c (calculate_gutter_size_from_display_lines): | |
1926 * gutter.c (calculate_gutter_size): | |
1927 * gutter.c (output_gutter): | |
1928 * gutter.c (clear_gutter): | |
1929 * gutter.c (mark_gutters): | |
1930 * gutter.c (gutter_extent_signal_changed_region_maybe): | |
1931 * gutter.c (update_gutter_geometry): | |
1932 * gutter.c (update_frame_gutter_geometry): | |
1933 * gutter.c (update_frame_gutters): | |
1934 * gutter.c (reset_gutter_display_lines): | |
1935 * gutter.c (redraw_exposed_gutter): | |
1936 * gutter.c (redraw_exposed_gutters): | |
1937 * gutter.c (free_frame_gutters): | |
1938 * gutter.c (decode_gutter_position): | |
1939 * gutter.c (Fset_default_gutter_position): | |
1940 * gutter.c (Fgutter_pixel_width): | |
1941 * gutter.c (Fgutter_pixel_height): | |
1942 * gutter.c (recompute_overlaying_specifier): | |
1943 * gutter.c (gutter_specs_changed_1): | |
1944 * gutter.c (gutter_specs_changed): | |
1945 * gutter.c (top_gutter_specs_changed): | |
1946 * gutter.c (bottom_gutter_specs_changed): | |
1947 * gutter.c (left_gutter_specs_changed): | |
1948 * gutter.c (right_gutter_specs_changed): | |
1949 * gutter.c (gutter_geometry_changed_in_window): | |
1950 * gutter.c (init_frame_gutters): | |
1951 * gutter.c (specifier_vars_of_gutter): | |
1952 * gutter.h: | |
1953 * gutter.h (WINDOW_REAL_TOP_GUTTER_BOUNDS): | |
1954 * gutter.h (FRAME_TOP_GUTTER_BOUNDS): | |
1955 * lisp.h (enum edge_style): | |
1956 * native-gtk-toolbar.c: | |
1957 * native-gtk-toolbar.c (gtk_output_toolbar): | |
1958 * native-gtk-toolbar.c (gtk_clear_toolbar): | |
1959 * native-gtk-toolbar.c (gtk_output_frame_toolbars): | |
1960 * native-gtk-toolbar.c (gtk_initialize_frame_toolbars): | |
1961 * toolbar-msw.c: | |
1962 * toolbar-msw.c (TOOLBAR_HANDLE): | |
1963 * toolbar-msw.c (allocate_toolbar_item_id): | |
1964 * toolbar-msw.c (mswindows_clear_toolbar): | |
1965 * toolbar-msw.c (mswindows_output_toolbar): | |
1966 * toolbar-msw.c (mswindows_move_toolbar): | |
1967 * toolbar-msw.c (mswindows_redraw_exposed_toolbars): | |
1968 * toolbar-msw.c (mswindows_initialize_frame_toolbars): | |
1969 * toolbar-msw.c (mswindows_output_frame_toolbars): | |
1970 * toolbar-msw.c (mswindows_clear_frame_toolbars): | |
1971 * toolbar-msw.c (DELETE_TOOLBAR): | |
1972 * toolbar-msw.c (mswindows_free_frame_toolbars): | |
1973 * toolbar-msw.c (mswindows_get_toolbar_button_text): | |
1974 * toolbar-xlike.c: | |
1975 * toolbar-xlike.c (__prepare_button_area): | |
1976 * toolbar-xlike.c (XLIKE_OUTPUT_BUTTONS_LOOP): | |
1977 * toolbar-xlike.c (xlike_output_toolbar): | |
1978 * toolbar-xlike.c (xlike_clear_toolbar): | |
1979 * toolbar-xlike.c (xlike_output_frame_toolbars): | |
1980 * toolbar-xlike.c (xlike_clear_frame_toolbars): | |
1981 * toolbar-xlike.c (xlike_redraw_exposed_toolbar): | |
1982 * toolbar-xlike.c (xlike_redraw_exposed_toolbars): | |
1983 * toolbar-xlike.c (xlike_redraw_frame_toolbars): | |
1984 * toolbar.c: | |
1985 * toolbar.c (decode_toolbar_position): | |
1986 * toolbar.c (Fset_default_toolbar_position): | |
1987 * toolbar.c (mark_frame_toolbar_buttons_dirty): | |
1988 * toolbar.c (compute_frame_toolbar_buttons): | |
1989 * toolbar.c (set_frame_toolbar): | |
1990 * toolbar.c (compute_frame_toolbars_data): | |
1991 * toolbar.c (update_frame_toolbars_geometry): | |
1992 * toolbar.c (init_frame_toolbars): | |
1993 * toolbar.c (get_toolbar_coords): | |
1994 * toolbar.c (CHECK_TOOLBAR): | |
1995 * toolbar.c (toolbar_buttons_at_pixpos): | |
1996 * toolbar.c (CTB_ERROR): | |
1997 * toolbar.c (recompute_overlaying_specifier): | |
1998 * toolbar.c (specifier_vars_of_toolbar): | |
1999 * toolbar.h: | |
2000 * toolbar.h (SET_TOOLBAR_WAS_VISIBLE_FLAG): | |
2001 Create new enum edge_pos with TOP_EDGE, BOTTOM_EDGE, LEFT_EDGE, | |
2002 RIGHT_EDGE; subsume TOP_BORDER, TOP_GUTTER, enum toolbar_pos, | |
2003 enum gutter_pos, etc. | |
2004 | |
2005 Create EDGE_POS_LOOP, subsuming GUTTER_POS_LOOP. | |
2006 | |
2007 Create NUM_EDGES, use in many places instead of hardcoded '4'. | |
2008 | |
2009 Instead of top_toolbar_was_visible, bottom_toolbar_was_visible, | |
2010 etc. make an array toolbar_was_visible[NUM_EDGES]. This increases | |
2011 the frame size by 15 bytes or so (could be 3 if we use Boolbytes) | |
2012 but hardly seems w to matter -- frames are heavy weight objects | |
2013 anyway. Same with top_gutter_was_visible, etc. | |
2014 | |
2015 Remove duplicated SET_TOOLBAR_WAS_VISIBLE_FLAG and put defn in | |
2016 one place (toolbar.h). | |
2017 | |
2018 2010-02-24 Didier Verna <didier@xemacs.org> | |
2019 | |
2020 Modify XLIKE_get_gc's prototype. | |
2021 * redisplay-xlike-inc.c (XLIKE_get_gc): Take a frame instead of a | |
2022 device as first argument. | |
2023 * redisplay-xlike-inc.c (XLIKE_output_string): Update caller. | |
2024 * redisplay-xlike-inc.c (XLIKE_output_pixmap): Ditto. | |
2025 * redisplay-xlike-inc.c (XLIKE_output_blank): Ditto. | |
2026 * redisplay-xlike-inc.c (XLIKE_output_horizontal_line): Ditto. | |
2027 * redisplay-xlike-inc.c (XLIKE_clear_region): Ditto. | |
2028 * redisplay-xlike-inc.c (XLIKE_output_eol_cursor): Ditto. | |
2029 * console-gtk.h (gtk_get_gc): Take a frame instead of a device as | |
2030 first argument. | |
2031 * gtk-glue.c (face_to_gc): Update caller. | |
2032 | |
2033 2010-02-24 Didier Verna <didier@xemacs.org> | |
2034 | |
2035 * glyphs.c: Clarify comment about potential_pixmap_file_instantiator. | |
2036 * glyphs.c (xbm_mask_file_munging): Clarify comment, remove | |
2037 unreachable condition and provide a cuple of assertions. | |
2038 * glyphs.c (xbm_normalize): Clarify comments, error on mask file | |
2039 not found. | |
2040 * glyphs.c (xface_normalize): Ditto, and handle inline data properly. | |
2041 | |
1 2010-02-22 Ben Wing <ben@xemacs.org> | 2042 2010-02-22 Ben Wing <ben@xemacs.org> |
2 | 2043 |
3 * EmacsFrame.c: | 2044 * EmacsFrame.c: |
4 * Makefile.in.in (x_objs): | 2045 * Makefile.in.in (x_objs): |
5 * Makefile.in.in (mswindows_objs): | 2046 * Makefile.in.in (mswindows_objs): |