Merged 2.061 frontend.

This commit is contained in:
David Nadlinger
2013-01-01 09:11:13 +01:00
parent 326aedd0e4
commit 5c518a16ec
91 changed files with 7638 additions and 6530 deletions

View File

@@ -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;