mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 04:22:20 +02:00
Fix for Win32 vdata reflection hot swap
This commit is contained in:
parent
04a46850d6
commit
bb66c77da8
3 changed files with 19 additions and 22 deletions
|
@ -307,28 +307,23 @@ struct Blurg
|
|||
|
||||
public static int32 Hey()
|
||||
{
|
||||
Hey2();
|
||||
Test();
|
||||
Test2(11, 22, 33);
|
||||
Test3();
|
||||
Test4();
|
||||
NoFrame.Test();
|
||||
while (true)
|
||||
{
|
||||
Type t = typeof(Yoofer);
|
||||
for (let field in t.GetFields())
|
||||
{
|
||||
StringView name = field.Name;
|
||||
}
|
||||
}
|
||||
|
||||
#unwarn
|
||||
return (int32)123;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
class NoFrame
|
||||
[Reflect]
|
||||
struct Yoofer
|
||||
{
|
||||
public static void Test()
|
||||
{
|
||||
//Test_Start
|
||||
Blurg.Derived dr = .();
|
||||
Int iVal = (.)123;
|
||||
|
||||
int q = 999;
|
||||
|
||||
//Test_End
|
||||
}
|
||||
int mA;
|
||||
}
|
|
@ -1881,7 +1881,7 @@ public:
|
|||
};
|
||||
#endif
|
||||
|
||||
void BfIRBuilder::CreateTypeDeclaration(BfType* type, bool forceDefine)
|
||||
void BfIRBuilder::CreateTypeDeclaration(BfType* type, bool forceDbgDefine)
|
||||
{
|
||||
bool wantDIData = DbgHasInfo() && (!type->IsUnspecializedType());
|
||||
|
||||
|
@ -1892,6 +1892,8 @@ void BfIRBuilder::CreateTypeDeclaration(BfType* type, bool forceDefine)
|
|||
// wantsDIForwardDecl = false;
|
||||
if (mModule->mExtensionCount != 0)
|
||||
wantsDIForwardDecl = true;
|
||||
if (forceDbgDefine)
|
||||
wantsDIForwardDecl = false;
|
||||
|
||||
bool isPrimEnum = (type->IsEnum()) && (type->IsTypedPrimitive());
|
||||
|
||||
|
@ -2772,7 +2774,7 @@ bool BfIRBuilder::WantsDbgDefinition(BfType* type)
|
|||
return false;
|
||||
}
|
||||
|
||||
void BfIRBuilder::CreateTypeDefinition(BfType* type, bool forceDefine)
|
||||
void BfIRBuilder::CreateTypeDefinition(BfType* type, bool forceDbgDefine)
|
||||
{
|
||||
// This PopulateType is generally NOT needed, but here is a scenario in which it is:
|
||||
// ClassB derives from ClassA. ClassC uses ClassB. A method inside ClassA gets modified,
|
||||
|
|
|
@ -940,8 +940,8 @@ public:
|
|||
String GetDebugTypeName(BfTypeInstance* typeInstance, bool includeOuterTypeName);
|
||||
void CreateDbgTypeDefinition(BfType* type);
|
||||
bool WantsDbgDefinition(BfType * type);
|
||||
void CreateTypeDeclaration(BfType* type, bool forceDefine);
|
||||
void CreateTypeDefinition(BfType* type, bool forceDefine);
|
||||
void CreateTypeDeclaration(BfType* type, bool forceDbgDefine);
|
||||
void CreateTypeDefinition(BfType* type, bool forceDbgDefine);
|
||||
void ReplaceDITemporaryTypes();
|
||||
void PushDbgLoc(BfTypeInstance* typeInst);
|
||||
BfIRPopulateType GetPopulateTypeState(BfType* type);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue