UPdate.
This commit is contained in:
Vendored
+1
@@ -1215,6 +1215,7 @@ static WrenInterpretResult runInterpreter(WrenVM* vm, register ObjFiber* fiber)
|
||||
CASE_CODE(RETURN):
|
||||
{
|
||||
Value result = POP();
|
||||
WREN_PROFILE_EXIT(fiber);
|
||||
fiber->numFrames--;
|
||||
|
||||
// Close any upvalues still in scope.
|
||||
|
||||
Vendored
+17
@@ -6,6 +6,22 @@
|
||||
#include "wren_value.h"
|
||||
#include "wren_utils.h"
|
||||
|
||||
#ifdef WREN_PROFILE_ENABLED
|
||||
struct ProfileEntry;
|
||||
struct ProfileFrame;
|
||||
struct ProfileState;
|
||||
extern struct ProfileState* g_profile;
|
||||
void wrenProfileEnter(WrenVM* vm, ObjFiber* fiber, ObjClosure* closure);
|
||||
void wrenProfileExit(ObjFiber* fiber);
|
||||
#define WREN_PROFILE_ENTER(vm, fiber, closure) \
|
||||
do { if (g_profile) wrenProfileEnter(vm, fiber, closure); } while(0)
|
||||
#define WREN_PROFILE_EXIT(fiber) \
|
||||
do { if (g_profile) wrenProfileExit(fiber); } while(0)
|
||||
#else
|
||||
#define WREN_PROFILE_ENTER(vm, fiber, closure) ((void)0)
|
||||
#define WREN_PROFILE_EXIT(fiber) ((void)0)
|
||||
#endif
|
||||
|
||||
// The maximum number of temporary objects that can be made visible to the GC
|
||||
// at one time.
|
||||
#define WREN_MAX_TEMP_ROOTS 8
|
||||
@@ -193,6 +209,7 @@ static inline void wrenCallFunction(WrenVM* vm, ObjFiber* fiber,
|
||||
wrenEnsureStack(vm, fiber, needed);
|
||||
|
||||
wrenAppendCallFrame(vm, fiber, closure, fiber->stackTop - numArgs);
|
||||
WREN_PROFILE_ENTER(vm, fiber, closure);
|
||||
}
|
||||
|
||||
// Marks [obj] as a GC root so that it doesn't get collected.
|
||||
|
||||
Reference in New Issue
Block a user