summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--load.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/load.c b/load.c
index c63aa2abbb..1928721c9e 100644
--- a/load.c
+++ b/load.c
@@ -1289,14 +1289,15 @@ require_internal(rb_execution_context_t *ec, VALUE fname, int exception, bool wa
{
volatile int result = -1;
rb_thread_t *th = rb_ec_thread_ptr(ec);
+ const rb_namespace_t *ns = rb_loading_namespace();
volatile const struct {
VALUE wrapper, self, errinfo;
rb_execution_context_t *ec;
+ const rb_namespace_t *ns;
} saved = {
th->top_wrapper, th->top_self, ec->errinfo,
- ec,
+ ec, ns,
};
- const rb_namespace_t *ns = rb_loading_namespace();
enum ruby_tag_type state;
char *volatile ftptr = 0;
VALUE path;
@@ -1365,6 +1366,7 @@ require_internal(rb_execution_context_t *ec, VALUE fname, int exception, bool wa
EC_POP_TAG();
ec = saved.ec;
+ ns = saved.ns;
rb_thread_t *th2 = rb_ec_thread_ptr(ec);
th2->top_self = saved.self;
th2->top_wrapper = saved.wrapper;