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