aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* (Fpurecopy): Declare size as EMACS_INT to not lose bits.Andreas Schwab2004-01-261-2/+3
|
* (lisp_malloc, lisp_align_malloc) [USE_LSB_TAG]:Stefan Monnier2004-01-211-0/+8
| | | | | Don't check range of malloc address. (pure_alloc) [USE_LSB_TAG]: Enforce alignment.
* (struct interval_block, struct string_block)Stefan Monnier2004-01-141-9/+18
| | | | | | | (struct symbol_block, struct marker_block, live_string_p) (live_cons_p, live_symbol_p, live_float_p, live_misc_p): Better preserve alignment for objects in blocks. (FLOAT_BLOCK_SIZE): Adjust for possible alignment padding.
* * alloc.c (allocate_vectorlike): Surround calls to mallopt withJan Djärv2004-01-111-0/+4
| | | | BLOCK/UNBLOCK_INPUT.
* (make_float, Fcons): Clear the markbit at init time.Stefan Monnier2003-11-181-13/+12
| | | | | | (make_float, Fcons, Fmake_symbol, allocate_misc): Move the increment of block_index outside of the macro call. (Fgarbage_collect): Remove null code.
* (lisp_align_malloc): If BASE is 0, call memory_full.Richard M. Stallman2003-10-131-0/+5
|
* (GC_MALLOC_CHECK): Move conditional undef after lisp.h.Dave Love2003-09-191-7/+7
|
* (init_marker): Remove debugging code.Stefan Monnier2003-09-111-1/+0
|
* (init_intervals, init_symbol, init_marker): Don't preallocate anything.Stefan Monnier2003-09-111-55/+15
| | | | (Fgarbage_collect, mark_object): Ignore the markbit.
* Use long instead of int when casting ABLOCKS_BUSY toAndreas Schwab2003-09-071-7/+7
| | | | avoid warning.
* Add arch taglinesMiles Bader2003-09-011-0/+3
|
* (lisp_align_malloc): Change type of `aligned'.Dave Love2003-08-201-2/+3
|
* (lisp_align_malloc): Check for memory full whenGerd Moellmann2003-08-191-15/+17
| | | | | allocating ablocks, which also avoids freeing a pointer into an ablocks structure.
* (mark_object): Handle Lisp_Misc_Save_Value.Andreas Schwab2003-08-081-0/+1
|
* (MARK_STRING, UNMARK_STRING, STRING_MARKED_P)Stefan Monnier2003-07-211-5/+5
| | | | | (GC_STRING_CHARS, string_bytes): Use ARRAY_MARK_FLAG rather than MARKBIT as the gcmarkbit for strings.
* (syms_of_alloc): Doc fixes.Richard M. Stallman2003-07-211-4/+2
|
* Use bitmaps for cons cells, as was done for floats.Stefan Monnier2003-07-151-49/+45
| | | | | | | | | | | | | (init_float, init_cons): Let the normal code allocate the first block. (CONS_BLOCK_SIZE): Redefine based on BLOCK_BYTES and bitmap size. (CONS_BLOCK, CONS_INDEX, CONS_MARKED_P, CONS_MARK, CONS_UNMARK): New macros. (struct cons_block): Move conses to the beginning. Add gcmarkbits. (Fcons): Use lisp_align_malloc and CONS_UNMARK. (live_cons_p): Check the pointer is not past the `conses' array. (mark_maybe_object, mark_maybe_pointer): Use CONS_MARKED_P. (mark_object, mark_buffer): Use CONS_MARKED_P and CONS_MARK. (survives_gc_p): Use CONS_MARKED_P and simplify. (gc_sweep): Use CONS_MARKED_P, CONS_UNMARK, and lisp_align_free.
* (pure, staticvec): Initialize these arrays to nonzero, so that they'rePaul Eggert2003-07-141-4/+6
| | | | not put into BSS by that optimization.
* (BLOCK_PADDING): Rename from ABLOCKS_PADDING. Update users.Stefan Monnier2003-07-141-16/+34
| | | | | | | (lisp_align_malloc): Use posix_memalign is available. (ABLOCKS_BASE): Use HAVE_POSIX_MEMALIGN as an optimization. (STRING_BLOCK_SIZE): Rename from STRINGS_IN_STRING_BLOCK for consistency. Update users.
* (mark_object): Mark the new `next' field of overlays.Stefan Monnier2003-07-091-3/+18
| | | | (mark_buffer): Manually mark the overlays_(after|before) fields.
* (Fgarbage_collect): Doc fix.Richard M. Stallman2003-07-071-3/+5
|
* (live_float_p): Check that p is not past the `floats' array,Stefan Monnier2003-07-061-0/+1
| | | | now that `floats' is not the last element of the struct any more.
* (mark_object): Change arg to only take Lisp_Object rather than *Lisp_Object.Stefan Monnier2003-07-061-84/+75
| | | | | | | (last_marked): Change accordingly. (mark_interval, mark_maybe_object, mark_maybe_pointer) (Fgarbage_collect, mark_glyph_matrix, mark_face_cache, mark_image) (mark_buffer): Update calls to mark_object.
* (struct ablock): Only include padding when there is some.Jason Rumney2003-07-061-1/+3
|
* (ALIGN): Add casts to simplify usage.Stefan Monnier2003-07-041-36/+255
| | | | | | | | | | | | | | | | | | | | | (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE) (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros. (struct ablock, struct ablocks): New types. (free_ablock): New global var. (lisp_align_malloc, lisp_align_free): New functions. (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES. (struct float_block): Reorder and add gcmarkbits. (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX) (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros. (init_float, make_float): Use lisp_align_malloc. (free_float, live_float_p): Don't use `type' any more. (make_float): Use FLOAT_UNMARK to access to mark bit. (mark_maybe_object, mark_maybe_pointer, survives_gc_p): Use FLOAT_MARKED_P to access the mark bit. (pure_alloc): Simplify use of ALIGN. (mark_object): Use FLOAT_MARK to access the mark bit. (gc_sweep): Use new macros to access the float's mark bit. (init_alloc_once): Init free_ablock.
* (mark_buffer): Fix missed buffer->name in last patch.Stefan Monnier2003-06-271-1/+1
|
* (VECTOR_MARK, VECTOR_UNMARK, VECTOR_MARKED_P): New macros.Stefan Monnier2003-06-271-54/+47
| | | | | | | | | | | (GC_STRING_BYTES): Don't mask markbit (it's only used on `size'). (allocate_buffer): Move. (string_bytes): Don't mask markbit of `size_byte'. (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect) (mark_object, mark_buffer, survives_gc_p, gc_sweep): Use the `size' field of buffers (rather than the `name' field) for the mark bit, as is done for all other vectorlike objects. Use the new macros to access the mark bit of vectorlike objects.
* (survives_gc_p): Simplify.Stefan Monnier2003-06-261-35/+4
| | | | (Fmake_marker, free_marker, gc_sweep): Update for new types.
* (make_interval, Fmake_symbol, allocate_misc):Stefan Monnier2003-06-251-118/+41
| | | | | | | | | Initialize the new field `gcmarkbit'. (mark_interval, MARK_INTERVAL_TREE): Use the new `gcmarkbit' field. (mark_interval_tree): Don't mark the tree separately from the nodes. (UNMARK_BALANCE_INTERVALS): Don't unmark the tree. (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect, mark_object) (survives_gc_p, gc_sweep): Use new `gcmarkbit' fields.
* (mark_kboards): Move to keyboard.c.Stefan Monnier2003-06-151-29/+1
|
* Comment.Dave Love2003-05-291-1/+7
|
* (Fgarbage_collect): Fix last change.Andreas Schwab2003-05-261-3/+7
|
* (Fgarbage_collect): Remove `unused var tail' warning.Stefan Monnier2003-05-251-10/+12
|
* (Fgarbage_collect): Cast pointers into specpdl to avoid GCC warning.Richard M. Stallman2003-05-171-2/+3
|
* (abort_on_gc): New variable.Richard M. Stallman2003-04-301-0/+9
| | | | (Fgarbage_collect): Abort if abort_on_gc is set.
* (Fmake_byte_code): Improve the `usage' string.Stefan Monnier2003-04-171-1/+3
|
* (VALIDATE_LISP_STORAGE): Macro deleted. All calls deleted.Richard M. Stallman2003-04-061-25/+17
| | | | (lisp_malloc): Do the work here directly.
* (make_string_from_bytes): Add `const' for the argKenichi Handa2003-03-231-2/+2
| | | | | CONTENTS. (make_specified_string): Likewise.
* (make_specified_string): Fix previous change.Kenichi Handa2003-03-191-1/+10
|
* (Fgarbage_collect): Don't use XSETFLOAT.Stefan Monnier2003-02-221-3/+3
|
* Trailing whitespace deleted.Juanma Barranquero2003-02-041-140/+140
|
* (Vgc_elapsed, gcs_done): New variables.Dave Love2003-01-301-4/+29
| | | | | (Fgarbage_collect): Use them. (init_alloc, syms_of_alloc): Set them up.
* (mark_stack) [!GC_LISP_OBJECT_ALIGNMENT && __GNUC__]:Dave Love2003-01-241-0/+7
| | | | Use __alignof__.
* (Fgc_status): Print zombie list.Dave Love2003-01-211-5/+10
| | | | | | | (mark_maybe_object) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]: Fix assignment of zombies. (Fgarbage_collect) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]: Don't take car of non-cons.
* GTK versionJan Djärv2003-01-191-0/+7
|
* (pure_alloc): Rewritten and simplified.Kim F. Storm2003-01-121-28/+16
|
* (pure_alloc): Corrected last change; now align theKim F. Storm2003-01-121-9/+12
| | | | | pointer and adjust the size rather than aligning the size and adjusting the pointer. Use a goto to handle overflow exception.
* (pure_alloc): Correct alignment for Lisp_Floats.Andreas Schwab2003-01-101-2/+7
|
* (make_save_value): New function.Richard M. Stallman2003-01-061-0/+20
|
* Comment change.Richard M. Stallman2002-12-211-1/+6
|