diff options
author | Jim Meyering <jim@meyering.net> | 2003-08-01 06:38:15 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2003-08-01 06:38:15 +0000 |
commit | ecc4d8f34d0ad038946fda9ca63fdb2636878441 (patch) | |
tree | 2e4d15c3f9fe388b7ae22a9fe4eed3ac9f2d5fb0 | |
parent | 85dfddc659eacb7bc1402168bb16cbd578b0e87e (diff) | |
download | coreutils-ecc4d8f34d0ad038946fda9ca63fdb2636878441.tar.xz |
.
-rw-r--r-- | lib/bumpalloc.h | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/lib/bumpalloc.h b/lib/bumpalloc.h deleted file mode 100644 index 39ea7206e..000000000 --- a/lib/bumpalloc.h +++ /dev/null @@ -1,63 +0,0 @@ -/* BUMP_ALLOC macro - increase table allocation by one element. - Copyright (C) 1990, 1991, 1993, 1998, 2000, 2003 Free Software Foundation, Inc. - François Pinard <pinard@iro.umontreal.ca>, 1990. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/*-------------------------------------------------------------------------. -| Bump the allocation of the array pointed to by TABLE whenever required. | -| The table already has already COUNT elements in it, this macro ensure it | -| has enough space to accommodate at least one more element. Space is | -| allocated (2 ^ EXPONENT) elements at a time. Each element of the array | -| is of type TYPE. | -`-------------------------------------------------------------------------*/ - -/* Routines `xmalloc' and `xrealloc' are called to do the actual memory - management. This implies that the program will abort with a "memory - exhausted" error if any problem arise. - - To work correctly, at least EXPONENT and TYPE should always be the - same for all uses of this macro for any given TABLE. A secure way to - achieve this is to never use this macro directly, but use it to define - other macros, which would then be TABLE-specific. - - The first time through, COUNT is usually zero. Note that COUNT is not - updated by this macro, but it should be update elsewhere, later. This - is convenient, because it allows TABLE[COUNT] to refer to the new - element at the end. Once its construction is completed, COUNT++ will - record it in the table. Calling this macro several times in a row - without updating COUNT is a bad thing to do. */ - -#define BUMP_ALLOC(Table, Count, Exponent, Type) \ - BUMP_ALLOC_WITH_SIZE ((Table), (Count), (Exponent), Type, sizeof (Type)) - -/* In cases `sizeof TYPE' would not always yield the correct value for - the size of each element entry, this macro accepts a supplementary - SIZE argument. The EXPONENT, TYPE and SIZE parameters should still - have the same value for all macro calls related to a specific TABLE. */ - -#define BUMP_ALLOC_WITH_SIZE(Table, Count, Exponent, Type, Size) \ - do \ - { \ - if (((Count) & (~(~0 << (Exponent)))) == 0) \ - { \ - if ((Count) == 0) \ - (Table) = xmalloc ((1 << (Exponent)) * (Size)); \ - else \ - (Table) = \ - xrealloc ((Table), ((Count) + (1 << (Exponent))) * (Size)); \ - } \ - } \ - while (0) |