Mercurial > emacs
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 |
