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):