summaryrefslogtreecommitdiff
path: root/src/alloc.c
Commit message (Collapse)AuthorAgeFilesLines
...
* (mark_object): Don't use Lisp_Process, Lisp_Window.Richard M. Stallman1994-12-301-70/+69
| | | | | Handle frames, compileds and subrs as branch of Lisp_Vectorlike case. (Fmake_byte_code): Use XSETCOMPILED.
* (mark_object): In a frame, mark the buffer_predicate.Richard M. Stallman1994-12-211-3/+2
| | | | Don't mark the height and width fields.
* (Fpurecopy): Use type test macros.Karl Heuer1994-11-181-4/+5
| | | | (mark_object): Use the new pseudovector convention.
* (Fpurecopy): Use type test macros.Karl Heuer1994-11-181-40/+23
|
* (Fmake_vector): Call allocate_vectorlike.Karl Heuer1994-11-161-11/+22
| | | | (allocate_vectorlike): New function, extracted from Fmake_vector.
* (Fmake_list, Fmake_vector, Fmake_string): Use CHECK_NATNUM instead of itsKarl Heuer1994-11-161-9/+6
| | | | expansion.
* (free_float): Don't assume XFASTINT accesses the raw bits.Karl Heuer1994-11-151-9/+8
| | | | (make_float, free_cons, Fcons, Fmake_symbol, gc_sweep): Likewise.
* (mark_object, gc_sweep): Use new overlay substructure.Karl Heuer1994-11-151-1/+18
|
* (mark_object): New code to handle buffer-local substructure.Karl Heuer1994-11-111-25/+59
| | | | (gc_sweep): Generalize marker code to handle other substructures.
* (mark_object): Use the new substructure.Karl Heuer1994-10-121-8/+10
|
* (MARKER_BLOCK_SIZE, marker_block, marker_free_list): Now refers to theKarl Heuer1994-10-111-36/+69
| | | | | | | superset type, not just markers. (allocate_misc): New function, extracted from Fmake_marker. (Fpurecopy): Check the substructure. (clear_marks, mark_object, gc_sweep): Likewise.
* (mark_object): Delete case Lisp_Void.Karl Heuer1994-10-061-1/+0
|
* (mark_object): Delete case Lisp_Internal_Stream.Karl Heuer1994-10-061-1/+0
|
* (free_float, make_float, free_cons, Flist, Fvector, Fmake_byte_code,Karl Heuer1994-10-041-13/+13
| | | | make_pure_float, mark_object, gc_sweep): Don't use XFASTINT as an lvalue.
* (VALIDATE_LISP_STORAGE, make_float, Fcons, Fmake_vector, Fmake_symbol,Karl Heuer1994-10-041-35/+32
| | | | | | Fmake_marker, make_uninit_string, make_pure_string, pure_cons, make_pure_float, make_pure_vector, mark_buffer, gc_sweep, compact_strings, Fmemory_limit): Use new accessor macros instead of calling XSET directly.
* (Fmake_list, Fmake_vector, Fmake_string, make_event_array): Use type testKarl Heuer1994-09-271-4/+4
| | | | macros.
* (make_float, make_pure_float): Fix Lisp_Object vs. int problems.Karl Heuer1994-09-201-2/+2
|
* (pure, pure_size): Use EMACS_INT.Richard M. Stallman1994-09-171-30/+30
| | | | | | (free_float, free_cons, PAD, STRING_FULLSIZE, struct string_block) (make_pure_string, make_pure_vector, Fgarbage_collect, mark_object) (gc_sweep, compact_strings, Fmemory_limit): Use EMACS_INT.
* Update copyright.Karl Heuer1994-05-041-1/+1
|
* (mark_object, case frame): Mark menu_bar_vector field.Richard M. Stallman1994-04-261-0/+1
|
* (make_event_array): Use assignment, not initialization.Karl Heuer1994-03-231-1/+2
|
* (mark_object): Add no-op cast.Richard M. Stallman1994-03-061-1/+3
|
* (ARRAY_MARK_FLAG): Definition moved to lisp.h.Richard M. Stallman1994-03-051-22/+0
|
* (memory_signal_data): No longer static.Richard M. Stallman1994-03-021-2/+3
| | | | (syms_of_alloc): Stick Qerror onto memory_signal_data.
* (memory_full): Use new variable memory_signal_data with precomputed valueKarl Heuer1994-02-281-1/+12
| | | | instead of trying to build it after memory is already exhausted.
* (Fgarbage_collect): Save echo_area_glyphs_length.Karl Heuer1994-02-101-1/+2
|
* (mark_object): Fetch obj from *objptr at loop, not at the gotos.Karl Heuer1994-02-091-7/+7
|
* (Fmemory_limit): No longer interactive.Richard M. Stallman1993-12-251-1/+1
|
* (make_pure_string): If we USE_TEXT_PROPERTIES, set theRichard M. Stallman1993-11-101-0/+6
| | | | interval of the pure string to NULL_INTERVAL.
* Include <config.h> instead of "config.h".Roland McGrath1993-09-101-1/+1
|
* (mark_object): Declare ptr volatile, or don't use itRichard M. Stallman1993-08-081-29/+16
| | | | after a recursive call. Delete the aborts if ptr is clobbered.
* (compact_strings): Add USE_TEXT_PROPERTIES conditional.Richard M. Stallman1993-07-211-0/+2
|
* Consistently use the mark bit of the root interval's parent fieldJim Blandy1993-07-181-21/+45
| | | | | | | | | | | | | | | | | | | | | | | | to say whether or not the interval tree has been visited (and skip it when revisited), and the mark bit of the plist field to say whether or not that interval has been visited (and abort if revisited); don't try to use the plist mark bit for both meanings. * alloc.c (mark_interval_tree): Don't test if the interval tree has already been visited here; let the MARK_INTERVAL_TREE macro do that; avoid function call overhead. Mark the interval tree as having been visited by setting TREE->parent's mark bit. (MARK_INTERVAL_TREE): If the tree has been visited (according to I->parent's mark bit), don't call mark_interval_tree. (gc_sweep): Rebalance the interval trees of those large strings which are still alive. This also clears the mark bits of those trees' root intervals' parent fields. (compact_strings): Rebalance the interval tree of each small strings which is still alive. This also clears the mark bits of that tree's root interval's parent field. Since the string has moved, update the root interval's parent pointer to contain the new address. * lisp.h (struct interval): Doc fix; explain the roles of the mark bits of the parent and plist members.
* (mark_object) [DEBUG_MOLE]: Add abort at beginning.Richard M. Stallman1993-07-141-0/+5
|
* (mark_object): Add aborts in Lisp_Symbol case.Richard M. Stallman1993-06-291-0/+8
|
* * alloc.c (Fgarbage_collect): If the minibuffer is active, don'tJim Blandy1993-06-211-1/+1
| | | | display the "...done" message; allow the minibuffer to show again.
* Apply typo patches from Paul Eggert.Jim Blandy1993-06-091-2/+2
|
* * alloc.c (emacs_blocked_malloc, emacs_blocked_realloc): Cast theJim Blandy1993-06-091-2/+2
| | | | return values of malloc and realloc, to placate compilers.
* (make_event_array): Ignore bits above CHAR_META.Richard M. Stallman1993-06-071-2/+3
|
* (mark_object): Add debugging code to check for ptr clobbered.Richard M. Stallman1993-05-271-0/+4
|
* * syssignal.h: Don't #include <signal.h>Jim Blandy1993-05-241-0/+1
| | | | * alloc.c: #include <signal.h>, but before "config.h".
* Updated copyright years.Jim Blandy1993-05-221-1/+1
|
* * lisp.h (Lisp_Overlay): New tag.Jim Blandy1993-05-141-0/+1
| | | | | | | | | | | | | | | | | | | | (OVERLAYP): New predicate. (CHECK_OVERLAY): New type-checker. (Qoverlayp): New extern declaration. * buffer.c (Foverlayp): New function. (Qoverlayp): New atom. (overlays_at, recenter_overlay_lists): Abort if we encounter an invalid overlay. (syms_of_buffer): defsubr Soverlayp; initialize Qoverlayp. (Fdelete_overlay): Set the overlay's markers to point nowhere. Use CHECK_OVERLAY instead of signalling a special error. (Fmove_overlay, Foverlay_put): Use CHECK_OVERLAY instead of signalling a special error. (Foverlay_get): Use CHECK_OVERLAY. * fns.c (internal_equal): Define this for overlays. * buffer.h (OVERLAY_VALID): Define in terms of OVERLAYP. * print.c (print): Give overlays their own print syntax. * alloc.c (mark_object): Treat overlays like conses.
* * alloc.c (__malloc_hook, __realloc_hook, __free_hook): DeclareJim Blandy1993-04-101-10/+13
| | | | | | | | these extern, not static. (!) * alloc.c (__malloc_hook, old_malloc_hook, __realloc_hook, old_realloc_hook): Declare that the functions these point to return void *, not void.
* Put interrupt input blocking in a separate file from xterm.h.Jim Blandy1993-03-311-28/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This isn't specific to X, and it allows us to avoid #including xterm.h in files that don't really have anything to do with X. * blockinput.h: New file. * xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h. (x_input_blocked, x_pending_input): Deleted; there are analogs in blockinput.h called interrupt_input_blocked and interrupt_input_pending. * keyboard.c (interrupt_input_blocked, interrupt_input_pending): New variables, used by the macros in blockinput.h. * xterm.c: #include blockinput.h. (x_input_blocked, x_pending_input): Deleted. (XTread_socket): Test and set interrupt_input_blocked and interrupt_input_pending instead of the old variables. * alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c: #include blockinput.h. * eval.c: #include blockinput.h instead of xterm.h. * keyboard.c: #include blockinput.h. (input_poll_signal): Just test interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and x_input_blocked. Block the processing of interrupt input while we're manipulating the malloc heap. * alloc.c: (xfree): New function, to make it easy to free things safely. (xmalloc, xrealloc): Block X input while doing the deed. (VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree instead of free. (uninterrupt_malloc): New function, to install input-blocking hooks into the GNU malloc routines. * emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc on startup. * alloc.c: (make_interval, make_float, Fcons, Fmake_vector, Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect): Use xmalloc instead of malloc; don't bother to check if out of memory here. (Fgarbage_collect): Call xrealloc instead of realloc. * buffer.c: Use xmalloc and xfree instead of malloc and free; don't bother to check if out of memory here. (Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around calls to ralloc routines. * insdel.c: Same. * lisp.h (xfree): New extern declaration. * xfaces.c (xfree): Don't #define this to be free; use the definition in alloc.c. * dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c, xmenu.c, xterm.c: Use xfree instead of free. * hftctl.c: Use xfree and xmalloc instead of free and malloc. * keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc and malloc. * search.c: Since the regexp routines can malloc, BLOCK_INPUT while runing them. #include blockinput.h. * sysdep.c: #include blockinput.h. Call xfree and xmalloc instead of free and malloc. BLOCK_INPUT around routines which we know will call malloc. ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o, xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that these depend on blockinput.h.
* (mark_object): Mark face_alist of a frame.Richard M. Stallman1993-03-251-0/+1
|
* Comment fix.Richard M. Stallman1993-03-121-1/+1
|
* (mark_object): Mark the menu_bar_items field.Richard M. Stallman1993-03-121-0/+1
|
* (Fmake_rope, Frope_elt): Fns deleted.Richard M. Stallman1993-03-051-59/+14
|
* Use the term `scroll bar', instead of `scrollbar'.Jim Blandy1993-03-021-2/+2
| | | | | | * alloc.c, frame.c, frame.h, indent.c, keyboard.c, keyboard.h, lisp.h, term.c, termhooks.h, window.c, window.h, xdisp.c, xfns.c, xterm.c, xterm.h: Terminology changed.