comparison src/alloc.c @ 90106:bf0d492ea2d5

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-16 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-106 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-110 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-111 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-112 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-113 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-114 <no summary provided> * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-115 - miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-123 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-124 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-17 - miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-19 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-20 Merge from emacs--cvs-trunk--0 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-21 More work on moving images to etc/images * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-22 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-23 Fix errors with image-file installation * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-24 etc/Makefile.in (install): Put gnus-tut.txt in the right place. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-25 etc/Makefile.in (install, uninstall): Fix installed image dirs. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-26 etc/Makefile.in (install): Create $(etcdir)/images/gnus dir. * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-27 Update from CVS
author Miles Bader <miles@gnu.org>
date Wed, 23 Feb 2005 09:18:23 +0000
parents 6d92d69fae33 84ff5b7a4139
children 4da4a09e8b1b
comparison
equal deleted inserted replaced
90105:7e3f621f1dd4 90106:bf0d492ea2d5
1 /* Storage allocation and gc for GNU Emacs Lisp interpreter. 1 /* Storage allocation and gc for GNU Emacs Lisp interpreter.
2 Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, 2 Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999,
3 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 3 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4 4
5 This file is part of GNU Emacs. 5 This file is part of GNU Emacs.
6 6
7 GNU Emacs is free software; you can redistribute it and/or modify 7 GNU Emacs is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
888 malloc a chance to minimize the amount of memory wasted to alignment. 888 malloc a chance to minimize the amount of memory wasted to alignment.
889 It should be tuned to the particular malloc library used. 889 It should be tuned to the particular malloc library used.
890 On glibc-2.3.2, malloc never tries to align, so a padding of 0 is best. 890 On glibc-2.3.2, malloc never tries to align, so a padding of 0 is best.
891 posix_memalign on the other hand would ideally prefer a value of 4 891 posix_memalign on the other hand would ideally prefer a value of 4
892 because otherwise, there's 1020 bytes wasted between each ablocks. 892 because otherwise, there's 1020 bytes wasted between each ablocks.
893 But testing shows that those 1020 will most of the time be efficiently 893 In Emacs, testing shows that those 1020 can most of the time be
894 used by malloc to place other objects, so a value of 0 is still preferable 894 efficiently used by malloc to place other objects, so a value of 0 can
895 unless you have a lot of cons&floats and virtually nothing else. */ 895 still preferable unless you have a lot of aligned blocks and virtually
896 nothing else. */
896 #define BLOCK_PADDING 0 897 #define BLOCK_PADDING 0
897 #define BLOCK_BYTES \ 898 #define BLOCK_BYTES \
898 (BLOCK_ALIGN - sizeof (struct aligned_block *) - BLOCK_PADDING) 899 (BLOCK_ALIGN - sizeof (struct ablock *) - BLOCK_PADDING)
899 900
900 /* Internal data structures and constants. */ 901 /* Internal data structures and constants. */
901 902
902 #define ABLOCKS_SIZE 16 903 #define ABLOCKS_SIZE 16
903 904