1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Added string literal to fixup queue

This commit is contained in:
Brian Fiete 2021-02-20 05:45:52 -08:00
parent 8047bebfca
commit a5e0a5688b

View file

@ -6423,8 +6423,21 @@ CeErrorKind CeMachine::WriteConstant(CeConstStructData& data, BeConstant* constV
if (globalVar->mName.StartsWith("__bfStrObj"))
{
int stringId = atoi(globalVar->mName.c_str() + 10);
addr_ce stringAddr = ceContext->GetString(stringId);
addr_ce stringAddr;
if (data.mQueueFixups)
{
stringAddr = 0;
CeConstStructFixup fixup;
fixup.mKind = CeConstStructFixup::Kind_StringPtr;
fixup.mValue = stringId;
fixup.mOffset = (int)data.mData.mSize;
data.mFixups.Add(fixup);
}
else
{
stringAddr = ceContext->GetString(stringId);
}
auto ptr = data.mData.GrowUninitialized(ceModule->mSystem->mPtrSize);
int64 addr64 = stringAddr;
memcpy(ptr, &addr64, ceModule->mSystem->mPtrSize);