[前][次][番号順一覧][スレッド一覧]

ruby-changes:69929

From: Koichi <ko1@a...>
Date: Thu, 25 Nov 2021 13:58:09 +0900 (JST)
Subject: [ruby-changes:69929] ca21eed6eb (master): fix assertion on `gc_cc_cme()`

https://git.ruby-lang.org/ruby.git/commit/?id=ca21eed6eb

From ca21eed6ebbceca68daa7b2a88e69a58b8d56806 Mon Sep 17 00:00:00 2001
From: Koichi Sasada <ko1@a...>
Date: Thu, 25 Nov 2021 12:18:15 +0900
Subject: fix assertion on `gc_cc_cme()`

`cc->cme_` can be NULL when it is not initialized yet.
It can be observed on `GC.stress == true` running.
---
 vm_callinfo.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/vm_callinfo.h b/vm_callinfo.h
index b3aafd6de14..700fd3dc6ca 100644
--- a/vm_callinfo.h
+++ b/vm_callinfo.h
@@ -334,7 +334,9 @@ static inline const struct rb_callable_method_entry_struct * https://github.com/ruby/ruby/blob/trunk/vm_callinfo.h#L334
 vm_cc_cme(const struct rb_callcache *cc)
 {
     VM_ASSERT(IMEMO_TYPE_P(cc, imemo_callcache));
-    VM_ASSERT(!vm_cc_markable(cc) || cc->cme_ != NULL);
+    VM_ASSERT(cc->call_ == NULL   || // not initialized yet
+              !vm_cc_markable(cc) ||
+              cc->cme_ != NULL);
 
     return cc->cme_;
 }
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]