aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* (emacs_blocked_malloc): Set __malloc_extra_blocks here.Richard M. Stallman1995-02-061-1/+97
| | | | | | | | | | | | | | | | | | (malloc_hysteresis): New variable. (init_alloc_once): Initialize malloc_hysteresis. (buffer_memory_full): New function. (refill_memory_reserve): New function. (SPARE_MEMORY): New macro. (emacs_blocked_free): If no spare_memory now, and enough free space is available, get a new spare. (__malloc_size_t, _bytes_used): Declared. (bytes_used_when_full): New variable. (syms_of_alloc): Improve memory exhausted error message. (init_alloc_once): Allocate spare_memory. (memory_full): Free spare_memory.
* (mark_perdisplays): New function.Karl Heuer1995-02-031-1/+17
| | | | (Fgarbage_collect): Call it.
* (mark_object): Ignore Lisp_Misc_Display_Objfwd objects.Karl Heuer1995-01-281-0/+1
|
* Change all occurences of SWITCH_ENUM_BUG to use SWITCH_ENUM_CAST instead.Karl Heuer1995-01-181-6/+2
|
* (Fpurecopy): Mask size field when copying pseudovector.Karl Heuer1995-01-141-0/+2
|
* Don't allow MARKBIT and DONT_COPY_FLAG to be the same bit.Karl Heuer1995-01-131-0/+4
|
* (DONT_COPY_FLAG): Default this to 1.Karl Heuer1995-01-131-9/+13
| | | | | | (mark_object): Use the same XOR expression as elsewhere. (gc_sweep): Don't touch DONT_COPY_FLAG here; this one is a real size field, not a mangled pointer.
* (DONT_COPY_FLAG): Fix typo.Karl Heuer1995-01-111-1/+1
|
* (Fgarbage_collect): Don't log the GC message.Karl Heuer1995-01-111-3/+3
|
* (DONT_COPY_FLAG): New bit flag.Richard M. Stallman1995-01-111-8/+18
| | | | (mark_object, gc_sweep, compact_strings): Use it.
* (mark_object, mark_buffer): Don't mark buffer twice.Karl Heuer1995-01-041-2/+5
|
* (mark_object): Make `else' visible outside MULTI_FRAME.Karl Heuer1995-01-031-1/+1
|
* (mark_buffer, gc_sweep): Use BUF_INTERVALS.Richard M. Stallman1995-01-021-8/+13
| | | | | | (mark_buffer): In indirect buffer, mark the base buffer. (mark_object): Make buffer case a branch of the Lisp_Vectorlike case.
* (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
|