1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00
Beef/IDEHelper/Linker/BlSymTable.cpp
2019-08-23 11:56:54 -07:00

36 lines
729 B
C++

#include "BlSymTable.h"
#include "BlContext.h"
USING_NS_BF;
BlSymTable::BlSymTable()
{
#ifdef BL_USE_DENSEMAP_SYMTAB
mMap.set_empty_key(Val128(-1));
//mMap.set_empty_key("");
mMap.min_load_factor(0);
mMap.resize(100000);
#endif
}
BlSymbol* BlSymTable::Add(const char* name, bool* isNew)
{
Val128 val128 = Hash128(name, (int)strlen(name));
auto itr = mMap.insert(std::make_pair(val128, (BlSymbol*)NULL));
if (!itr.second)
{
if (isNew != NULL)
*isNew = false;
return itr.first->second;
}
if (isNew != NULL)
*isNew = true;
auto blSymbol = new BlSymbol();
itr.first->second = blSymbol;
blSymbol->mName = name;
blSymbol->mKind = BlSymKind_Undefined;
blSymbol->mObjectDataIdx = -1;
return blSymbol;
}