diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-27 00:43:23 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-11-27 00:43:23 +0000 |
commit | 9f1c00ce65ed8762d5ab9f133145e19d1951a7f3 (patch) | |
tree | 2a48a117c2f710389db21b09bed2230a84d796ac /iseq.c | |
parent | 2734867c16fdb8a786219ceb9c157be893da8c05 (diff) |
Relax `rb_bug()` condition.
* iseq.c (rb_iseq_trace_set): simply return immediately if
ISeq::compile_data is available. Not sure why this state
is allowed, but exception during compile (or `ISeq::load`)
can make such states.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'iseq.c')
-rw-r--r-- | iseq.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -2327,6 +2327,10 @@ rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events) if (iseq->aux.trace_events == turnon_events) { return; } + if (iseq->flags & ISEQ_USE_COMPILE_DATA) { + /* this is building ISeq */ + return; + } else { unsigned int i; VALUE *iseq_encoded = (VALUE *)iseq->body->iseq_encoded; @@ -2336,9 +2340,6 @@ rb_iseq_trace_set(const rb_iseq_t *iseq, rb_event_flag_t turnon_events) #else const VALUE *code = iseq->body->iseq_encoded; #endif - if (iseq->flags & ISEQ_USE_COMPILE_DATA) { - rb_bug("ISEQ_USE_COMPILE_DATA should not be enabled: %s:%d\n", RSTRING_PTR(rb_iseq_path(iseq)), FIX2INT(rb_iseq_first_lineno(iseq))); - } ((rb_iseq_t *)iseq)->aux.trace_events = turnon_events; for (i=0; i<iseq->body->iseq_size;) { |