mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-21 06:03:14 +01:00
Merged 2.061 frontend.
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "rmem.h" // mem
|
||||
#include "stringtable.h"
|
||||
|
||||
// TODO: Merge with root.String
|
||||
hash_t calcHash(const char *str, size_t len)
|
||||
{
|
||||
hash_t hash = 0;
|
||||
@@ -66,14 +67,14 @@ hash_t calcHash(const char *str, size_t len)
|
||||
}
|
||||
}
|
||||
|
||||
void StringValue::ctor(const char *p, unsigned length)
|
||||
void StringValue::ctor(const char *p, size_t length)
|
||||
{
|
||||
this->length = length;
|
||||
this->lstring[length] = 0;
|
||||
memcpy(this->lstring, p, length * sizeof(char));
|
||||
}
|
||||
|
||||
void StringTable::init(unsigned size)
|
||||
void StringTable::init(size_t size)
|
||||
{
|
||||
table = (void **)mem.calloc(size, sizeof(void *));
|
||||
tabledim = size;
|
||||
@@ -82,11 +83,9 @@ void StringTable::init(unsigned size)
|
||||
|
||||
StringTable::~StringTable()
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
// Zero out dangling pointers to help garbage collector.
|
||||
// Should zero out StringEntry's too.
|
||||
for (i = 0; i < count; i++)
|
||||
for (size_t i = 0; i < count; i++)
|
||||
table[i] = NULL;
|
||||
|
||||
mem.free(table);
|
||||
@@ -101,10 +100,10 @@ struct StringEntry
|
||||
|
||||
StringValue value;
|
||||
|
||||
static StringEntry *alloc(const char *s, unsigned len);
|
||||
static StringEntry *alloc(const char *s, size_t len);
|
||||
};
|
||||
|
||||
StringEntry *StringEntry::alloc(const char *s, unsigned len)
|
||||
StringEntry *StringEntry::alloc(const char *s, size_t len)
|
||||
{
|
||||
StringEntry *se;
|
||||
|
||||
@@ -114,7 +113,7 @@ StringEntry *StringEntry::alloc(const char *s, unsigned len)
|
||||
return se;
|
||||
}
|
||||
|
||||
void **StringTable::search(const char *s, unsigned len)
|
||||
void **StringTable::search(const char *s, size_t len)
|
||||
{
|
||||
hash_t hash;
|
||||
unsigned u;
|
||||
@@ -148,7 +147,7 @@ void **StringTable::search(const char *s, unsigned len)
|
||||
return (void **)se;
|
||||
}
|
||||
|
||||
StringValue *StringTable::lookup(const char *s, unsigned len)
|
||||
StringValue *StringTable::lookup(const char *s, size_t len)
|
||||
{ StringEntry *se;
|
||||
|
||||
se = *(StringEntry **)search(s,len);
|
||||
@@ -158,7 +157,7 @@ StringValue *StringTable::lookup(const char *s, unsigned len)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
StringValue *StringTable::update(const char *s, unsigned len)
|
||||
StringValue *StringTable::update(const char *s, size_t len)
|
||||
{ StringEntry **pse;
|
||||
StringEntry *se;
|
||||
|
||||
@@ -172,7 +171,7 @@ StringValue *StringTable::update(const char *s, unsigned len)
|
||||
return &se->value;
|
||||
}
|
||||
|
||||
StringValue *StringTable::insert(const char *s, unsigned len)
|
||||
StringValue *StringTable::insert(const char *s, size_t len)
|
||||
{ StringEntry **pse;
|
||||
StringEntry *se;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user