1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Comptime reentrancy fixes, deleting rebuild, static field fixes

This commit is contained in:
Brian Fiete 2021-11-26 08:59:46 -08:00
parent 0bb273b898
commit c5e2b78199
5 changed files with 145 additions and 57 deletions

View file

@ -395,14 +395,22 @@ public:
class CeFunction
{
public:
enum InitializeState
{
InitializeState_None,
InitializeState_Initializing,
InitializeState_Initializing_ReEntry,
InitializeState_Initialized
};
public:
CeMachine* mCeMachine;
CeFunctionInfo* mCeFunctionInfo;
CeInnerFunctionInfo* mCeInnerFunctionInfo;
BfMethodInstance* mMethodInstance;
CeFunctionKind mFunctionKind;
bool mGenerating;
bool mInitialized;
CeFunctionKind mFunctionKind;
InitializeState mInitializeState;
bool mFailed;
bool mIsVarReturn;
Array<uint8> mCode;
@ -425,9 +433,8 @@ public:
mCeMachine = NULL;
mCeFunctionInfo = NULL;
mCeInnerFunctionInfo = NULL;
mFunctionKind = CeFunctionKind_NotSet;
mGenerating = false;
mInitialized = false;
mFunctionKind = CeFunctionKind_NotSet;
mInitializeState = InitializeState_None;
mMethodInstance = NULL;
mFailed = false;
mIsVarReturn = false;
@ -682,11 +689,13 @@ public:
BfMethodInstance* mMethodInstance;
String mEmitData;
String mExitEmitData;
bool mFailed;
CeEmitContext()
{
mType = NULL;
mMethodInstance = NULL;
mFailed = false;
}
};
@ -694,6 +703,7 @@ class CeContext
{
public:
CeMachine* mCeMachine;
CeContext* mPrevContext;
int mReflectTypeIdOffset;
int mExecuteId;
CeEvalFlags mCurEvalFlags;