1
0
mirror of https://git.savannah.gnu.org/git/gperf.git synced 2025-12-02 13:09:22 +00:00

Simplify Bool_Array.

This commit is contained in:
Bruno Haible
2002-10-17 14:10:32 +00:00
parent a50f8b1712
commit a6fd7cc006
5 changed files with 15 additions and 17 deletions

View File

@@ -24,8 +24,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111, USA. */
#include <string.h>
#include "options.h"
STORAGE_TYPE * Bool_Array::storage_array;
STORAGE_TYPE Bool_Array::iteration_number;
unsigned int * Bool_Array::storage_array;
unsigned int Bool_Array::iteration_number;
unsigned int Bool_Array::size;
/* Prints out debugging diagnostics. */

View File

@@ -27,25 +27,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef bool_array_h
#define bool_array_h 1
#ifdef LO_CAL
/* If we are on a memory diet then we'll only make these use a limited
amount of storage space. */
typedef unsigned short STORAGE_TYPE;
#else
typedef unsigned int STORAGE_TYPE;
#endif
class Bool_Array
{
private:
static STORAGE_TYPE *storage_array; /* Initialization of the index space. */
static STORAGE_TYPE iteration_number; /* Keep track of the current iteration. */
static unsigned int *storage_array; /* Initialization of the index space. */
static unsigned int iteration_number; /* Keep track of the current iteration. */
static unsigned int size; /* Keep track of array size. */
public:
Bool_Array (void);
~Bool_Array (void);
static void init (STORAGE_TYPE *buffer, unsigned int s);
static void init (unsigned int *buffer, unsigned int s);
static int find (int hash_value);
static void reset (void);
};

View File

@@ -32,7 +32,7 @@ Bool_Array::Bool_Array (void)
}
INLINE void
Bool_Array::init (STORAGE_TYPE *buffer, unsigned int s)
Bool_Array::init (unsigned int *buffer, unsigned int s)
{
size = s;
iteration_number = 1;

View File

@@ -275,11 +275,11 @@ int
Gen_Perf::operator() (void)
{
#if LARGE_STACK_ARRAYS
STORAGE_TYPE buffer[max_hash_value + 1];
unsigned int buffer[max_hash_value + 1];
#else
// Note: we don't use new, because that invokes a custom operator new.
STORAGE_TYPE *buffer
= (STORAGE_TYPE*) malloc (sizeof(STORAGE_TYPE) * (max_hash_value + 1));
unsigned int *buffer
= (unsigned int*) malloc (sizeof(unsigned int) * (max_hash_value + 1));
if (buffer == NULL)
abort ();
#endif