diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-08 05:35:46 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-08 05:35:46 +0000 |
commit | 8634e62a621fc50ffb29344425a558115bebd3bc (patch) | |
tree | a7936f208bbc4ae1500e6069324dd234e82735b5 | |
parent | a74d08b957b9896e69bde1c9f571fdc5022fbdfb (diff) | |
download | ruby-8634e62a621fc50ffb29344425a558115bebd3bc.tar.gz |
initialize VM postponed_job first. [Bug #15288]
* inits.c: call `Init_vm_postponed_job` first because
postponed_job is used by transient heap.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | inits.c | 1 | ||||
-rw-r--r-- | vm_trace.c | 10 |
2 files changed, 3 insertions, 8 deletions
@@ -19,6 +19,7 @@ rb_call_inits(void) #if USE_TRANSIENT_HEAP CALL(TransientHeap); #endif + CALL(vm_postponed_job); CALL(Method); CALL(RandomSeedCore); CALL(sym); diff --git a/vm_trace.c b/vm_trace.c index 54aa34f8d2..f5e2c921d3 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -1470,8 +1470,6 @@ tracepoint_stat_s(VALUE self) return stat; } -static void Init_postponed_job(void); - /* This function is called from inits.c */ void Init_vm_trace(void) @@ -1566,10 +1564,6 @@ Init_vm_trace(void) rb_define_method(rb_cTracePoint, "raised_exception", tracepoint_attr_raised_exception, 0); rb_define_singleton_method(rb_cTracePoint, "stat", tracepoint_stat_s, 0); - - /* initialized for postponed job */ - - Init_postponed_job(); } typedef struct rb_postponed_job_struct { @@ -1580,8 +1574,8 @@ typedef struct rb_postponed_job_struct { #define MAX_POSTPONED_JOB 1000 #define MAX_POSTPONED_JOB_SPECIAL_ADDITION 24 -static void -Init_postponed_job(void) +void +Init_vm_postponed_job(void) { rb_vm_t *vm = GET_VM(); vm->postponed_job_buffer = ALLOC_N(rb_postponed_job_t, MAX_POSTPONED_JOB); |