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

ruby-changes:56737

From: Aaron <ko1@a...>
Date: Thu, 1 Aug 2019 02:35:05 +0900 (JST)
Subject: [ruby-changes:56737] Aaron Patterson: 5ad2dfd8dc (master): Revert "Let prev EP move"

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

From 5ad2dfd8dce00f9fb4908adc786f12baaaf2b273 Mon Sep 17 00:00:00 2001
From: Aaron Patterson <tenderlove@r...>
Date: Wed, 31 Jul 2019 10:34:23 -0700
Subject: Revert "Let prev EP move"

This reverts commit e352445863588b90f7af6cdf6c1b6dc432ee33ab.

This is breaking CI and I'm not sure why yet, so I'll revert for now.

diff --git a/gc.c b/gc.c
index bfa5c18..1b0f13e 100644
--- a/gc.c
+++ b/gc.c
@@ -5006,7 +5006,7 @@ gc_mark_imemo(rb_objspace_t *objspace, VALUE obj) https://github.com/ruby/ruby/blob/trunk/gc.c#L5006
 	    GC_ASSERT(VM_ENV_ESCAPED_P(env->ep));
             gc_mark_values(objspace, (long)env->env_size, env->env);
 	    VM_ENV_FLAGS_SET(env->ep, VM_ENV_FLAG_WB_REQUIRED);
-            gc_mark(objspace, (VALUE)rb_vm_env_prev_env(env));
+            gc_mark_and_pin(objspace, (VALUE)rb_vm_env_prev_env(env));
 	    gc_mark(objspace, (VALUE)env->iseq);
 	}
 	return;
@@ -7845,12 +7845,10 @@ gc_ref_update_imemo(rb_objspace_t *objspace, VALUE obj) https://github.com/ruby/ruby/blob/trunk/gc.c#L7845
         {
             rb_env_t *env = (rb_env_t *)obj;
             TYPED_UPDATE_IF_MOVED(objspace, rb_iseq_t *, env->iseq);
-            if (gc_object_moved_p(objspace, VM_ENV_ENVVAL(env->ep))) {
-                VM_STACK_ENV_WRITE(env->ep, VM_ENV_DATA_INDEX_ENV, rb_gc_location(VM_ENV_ENVVAL(env->ep)));
-            }
             gc_update_values(objspace, (long)env->env_size, (VALUE *)env->env);
         }
         break;
+        break;
       case imemo_cref:
         UPDATE_IF_MOVED(objspace, RANY(obj)->as.imemo.cref.klass);
         TYPED_UPDATE_IF_MOVED(objspace, struct rb_cref_struct *, RANY(obj)->as.imemo.cref.next);
-- 
cgit v0.10.2


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

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