sourcepawn/compiler/sp_symhash.h
author Nicholas Hastings <skamonkey@gmail.com>
Wed Aug 14 14:20:57 2013 -0400 (2013-08-14)
changeset 4008 490b01aa0683
parent 3075 a86a7061c44c
permissions -rw-r--r--
Updated some CS:GO gamedata.
dvander@3075
     1
/* vim: set ts=4 sw=4 tw=99 et: */
dvander@3075
     2
#ifndef _INCLUDE_SPCOMP_SYMHASH_H_
dvander@3075
     3
#define _INCLUDE_SPCOMP_SYMHASH_H_
dvander@3075
     4
dvander@3075
     5
SC_FUNC uint32_t NameHash(const char *str);
dvander@3075
     6
dvander@3075
     7
typedef struct HashEntry {
dvander@3075
     8
    symbol *sym;
dvander@3075
     9
    struct HashEntry *next;
dvander@3075
    10
} HashEntry;
dvander@3075
    11
dvander@3075
    12
struct HashTable {
dvander@3075
    13
    uint32_t nbuckets;
dvander@3075
    14
    uint32_t nused;
dvander@3075
    15
    uint32_t bucketmask;
dvander@3075
    16
    HashEntry **buckets;
dvander@3075
    17
};
dvander@3075
    18
dvander@3075
    19
SC_FUNC HashTable *NewHashTable();
dvander@3075
    20
SC_FUNC void DestroyHashTable(HashTable *ht);
dvander@3075
    21
SC_FUNC void AddToHashTable(HashTable *ht, symbol *sym);
dvander@3075
    22
SC_FUNC void RemoveFromHashTable(HashTable *ht, symbol *sym);
dvander@3075
    23
SC_FUNC symbol *FindInHashTable(HashTable *ht, const char *name, int fnumber);
dvander@3075
    24
SC_FUNC symbol *FindTaggedInHashTable(HashTable *ht, const char *name, int fnumber,
dvander@3075
    25
                                      int *cmptag);
dvander@3075
    26
dvander@3075
    27
#endif /* _INCLUDE_SPCOMP_SYMHASH_H_ */
dvander@3075
    28