Project

General

Profile

Actions

Feature #4871

closed

envのコンパクト化

Added by ktsj (Kazuki Tsujimoto) almost 13 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-dev:43743]

Description

=begin
辻本です。

rb_env_tのenvは以下の構造を持ちますが、env[2](prev env val)は不要ではないでしょうか。

/*
env{
env[0] // special (block or prev env)
env[1] // env object
env[2] // prev env val
};
*/

根拠は次の通りです。

  • prev env valに無条件にNULLを代入するようにコードを変更してもmake test、make test-allをパスする。
  • コードを読む限りこの値が使われるのはcheck_envの中で値をデバッグ用に出力するときのみ。
    • check_envはPROC_DEBUGが真でない限り呼ばれない。通常は偽。
    • そもそもcheck_envはYARVがマージされて以来変更されておらず、現在のenvの構造に対応できていない。

prev env valを持たないようにした上でcheck_envをこの変更に対応させたパッチを添付します。

なお、check_envはstdout/stderr両方にデバッグメッセージを出力するため
flushのタイミングによっては出力が混在して見づらいので
出力先をstderrに統一するためのパッチもあわせて用意しました。
=end


Files

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0