1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed const float encoding in reflection

This commit is contained in:
Brian Fiete 2022-02-12 10:13:25 -05:00
parent 21352b8a7f
commit aacabd2e13

View file

@ -5416,9 +5416,17 @@ BfIRValue BfModule::CreateFieldData(BfFieldInstance* fieldInstance, int customAt
if (fieldInstance->mConstIdx != -1)
{
auto constant = typeInstance->mConstHolder->GetConstantById(fieldInstance->mConstIdx);
constValue = mBfIRBuilder->CreateConst(BfTypeCode_IntPtr, constant->mUInt64);
uint64 val = constant->mUInt64;
if (constant->mTypeCode == BfTypeCode_Float)
{
float f = (float)*(double*)&val;
val = *(uint32*)&f;
}
constValue = mBfIRBuilder->CreateConst(BfTypeCode_IntPtr, val);
if (is32Bit)
constValue2 = mBfIRBuilder->CreateConst(BfTypeCode_IntPtr, constant->mUInt64 >> 32);
constValue2 = mBfIRBuilder->CreateConst(BfTypeCode_IntPtr, val >> 32);
}
}
else if (fieldInstance->GetFieldDef()->mIsStatic)