summaryrefslogtreecommitdiff
path: root/vm_core.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-10 15:49:45 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-10 15:49:45 +0000
commit4f0c9a5cc49cf36f15af85f644982fbb847f0dca (patch)
treeacfb66f8c2b3df4b0572647f35b77a2d5b722ff0 /vm_core.h
parent83299c73f36a56442a24de26f049f1a21d724d5c (diff)
move th->machine to ec->machine.
* vm_core.h: move rb_thread_t::machine to rb_execution_context_t::machine. * vm_core.h, gc.c (rb_gc_mark_machine_stack): accept ec instead of th. it enables to call this func from rb_execution_context_mark() in vm.c. * cont.c (fiber_setcontext): catch up this fix. fiber_restore_thread() restores machine stack information too. * gc.c: catch up structure layout changes. * thread.c: ditto. * thread_pthread.c: ditto. * thread_win32.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h28
1 files changed, 14 insertions, 14 deletions
diff --git a/vm_core.h b/vm_core.h
index a2ca6342cf..67f9641c25 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -767,6 +767,19 @@ typedef struct rb_execution_context_struct {
rb_ensure_list_t *ensure_list;
rb_fiber_t *fiber;
+
+ /* for GC */
+ struct {
+ VALUE *stack_start;
+ VALUE *stack_end;
+ size_t stack_maxsize;
+#ifdef __ia64
+ VALUE *register_stack_start;
+ VALUE *register_stack_end;
+ size_t register_stack_maxsize;
+#endif
+ jmp_buf regs;
+ } machine;
} rb_execution_context_t;
typedef struct rb_thread_struct {
@@ -829,19 +842,6 @@ typedef struct rb_thread_struct {
VALUE first_args;
VALUE (*first_func)(ANYARGS);
- /* for GC */
- struct {
- VALUE *stack_start;
- VALUE *stack_end;
- size_t stack_maxsize;
-#ifdef __ia64
- VALUE *register_stack_start;
- VALUE *register_stack_end;
- size_t register_stack_maxsize;
-#endif
- jmp_buf regs;
- } machine;
-
/* statistics data for profiler */
VALUE stat_insn_usage;
@@ -1543,7 +1543,7 @@ void rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE
#define rb_vm_register_special_exception(sp, e, m) \
rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m)))
-void rb_gc_mark_machine_stack(rb_thread_t *th);
+void rb_gc_mark_machine_stack(const rb_execution_context_t *ec);
int rb_autoloading_value(VALUE mod, ID id, VALUE* value);