summaryrefslogtreecommitdiff
path: root/src/interp/interp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/interp.cc')
-rw-r--r--src/interp/interp.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/interp/interp.cc b/src/interp/interp.cc
index 4704500e..d9cb9797 100644
--- a/src/interp/interp.cc
+++ b/src/interp/interp.cc
@@ -932,6 +932,12 @@ void Thread::PushValues(const ValueTypes& types, const Values& values) {
}
#define TRAP_UNLESS(cond, msg) TRAP_IF(!(cond), msg)
+Instance* Thread::GetCallerInstance() {
+ if (frames_.size() < 2)
+ return nullptr;
+ return frames_[frames_.size() - 2].inst;
+}
+
RunResult Thread::PushCall(Ref func, u32 offset, Trap::Ptr* out_trap) {
TRAP_IF(frames_.size() == frames_.capacity(), "call stack exhausted");
frames_.emplace_back(func, values_.size(), offset, inst_, mod_);