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

ruby-changes:54886

From: k0kubun <ko1@a...>
Date: Wed, 20 Feb 2019 00:39:42 +0900 (JST)
Subject: [ruby-changes:54886] k0kubun:r67091 (trunk): insns.def: opt_regexpmatch2 is not a leaf insn

k0kubun	2019-02-20 00:39:35 +0900 (Wed, 20 Feb 2019)

  New Revision: 67091

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=67091

  Log:
    insns.def: opt_regexpmatch2 is not a leaf insn
    
    related: r66982
    Sadly opt_regexpmatch2 was not a leaf insn either.
    http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/1751213
    
    CHECK_INTERRUPT_IN_MATCH_AT is just like RUBY_VM_CHECK_INTS, and it may
    call arbitrary Ruby method, for example a GC finalizer from postponed
    job in this case.

  Modified files:
    trunk/insns.def
Index: insns.def
===================================================================
--- insns.def	(revision 67090)
+++ insns.def	(revision 67091)
@@ -1432,6 +1432,7 @@ opt_regexpmatch2 https://github.com/ruby/ruby/blob/trunk/insns.def#L1432
 (CALL_INFO ci, CALL_CACHE cc)
 (VALUE obj2, VALUE obj1)
 (VALUE val)
+// attr bool leaf = false; /* match_at() has rb_thread_check_ints() */
 {
     val = vm_opt_regexpmatch2(obj2, obj1);
 

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

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