[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

14 messages 2001/12/05
[#15358] Regexp in UTF-8 (Re: Regexp literal and Regexp.new()) — TAKAHASHI Masayoshi <maki@...> 2001/12/05

高橋征義です。むーん、問題のありかが違ったかも。

[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>

In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,

20 messages 2001/12/13
[#15436] Re: Time#utcoff — matz@... (Yukihiro Matsumoto) 2001/12/14

まつもと ゆきひろです

[#15505] ERb — m_seki@...

74 messages 2001/12/20
[#15560] Re: ERb — Tanaka Akira <akr@...17n.org> 2001/12/27

In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,

[#15879] Re: ERb — m_seki@... 2002/02/12

[#15884] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/14

In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,

[#15885] Re: ERb — m_seki@... 2002/02/14

[#15886] Re: ERb — m_seki@... 2002/02/14

[#15887] Re: ERb — TAKAHASHI Masayoshi <maki@...> 2002/02/14

高橋征義です。

[#15888] Re: ERb — m_seki@... 2002/02/14

[#15896] Re: ERb — Tanaka Akira <akr@...17n.org> 2002/02/15

In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,

[#15898] Re: ERb — m_seki@... 2002/02/15

[#15900] Re: ERb — TADA Tadashi <sho@...> 2002/02/16

ただただしです。

[#15901] Re: ERb — m_seki@... 2002/02/16

[#15906] Re: ERb — matz@... (Yukihiro Matsumoto) 2002/02/17

まつもと ゆきひろです

[#15909] 1.6 の寿命 (Re: Re: ERb) — Koji Arai <JCA02266@...> 2002/02/17

新井です。

[#15507] fileutils (2) — Minero Aoki <aamine@...>

あおきです。

30 messages 2001/12/20
[#15512] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/20

高橋征義です。

[#15513] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15515] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/21

高橋征義です。結論は最後に。

[#15516] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/21

あおきです。

[#15533] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/22

高橋征義です。

[#15536] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15540] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/24

高橋征義です。

[#15545] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/24

あおきです。

[#15557] Re: fileutils (2) — TAKAHASHI Masayoshi <maki@...> 2001/12/26

高橋征義です。

[#15567] Re: fileutils (2) — Minero Aoki <aamine@...> 2001/12/27

あおきです。

[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>

Tietew です。

22 messages 2001/12/28

[ruby-dev:15611] Re: filename within eval

From: nobu.nakada@...
Date: 2001-12-30 18:50:27 UTC
List: ruby-dev #15611
なかだです。

At Mon, 31 Dec 2001 01:33:18 +0900,
Nobuyoshi-Nakada wrote:
> > もうちょっとマシ…かどうかはともかく、新しい手を考えてみました。
> > たぶんGCもそれほど遅くはならないと思います。
> 
> 失敗。ruby_sourcefileに直接代入してるところがあるのを忘れてまし
> た。
> 
> # やっぱり結構大きくなってしまった。

考えてみたら、VALUEにしておく必要もないような。

たびたびすいませんが、[ruby-dev:15610]からの差分です。


--- gc.c~	Mon Dec 31 01:00:44 2001
+++ gc.c	Mon Dec 31 02:22:44 2001
@@ -436,25 +436,37 @@ rb_source_filename(f)
     const char *f;
 {
-    VALUE name;
+    char *name;
 
     if (!st_lookup(source_filenames, f, &name)) {
-	long len = strlen(f);
-	VALUE *ptr = (VALUE *)RSTRING(name = rb_str_new(0, sizeof(VALUE) + len))->ptr;
-	*ptr++ = name;
+	long len = strlen(f) + 1;
+	char *ptr = name = ALLOC_N(char, len + 1);
+	*ptr++ = 0;
 	MEMCPY(ptr, f, char, len);
-	OBJ_FREEZE(name);
 	st_add_direct(source_filenames, ptr, name);
-	return (char *)ptr;
+	return ptr;
     }
-    return RSTRING(name)->ptr + sizeof(VALUE);
+    return name + 1;
 }
 
 static void
 mark_source_filename(f)
-    const char *f;
+    char *f;
 {
     if (f) {
-	VALUE name = ((VALUE *)f)[-1];
-	FL_SET(name, FL_MARK);
+	f[-1] = 1;
+    }
+}
+
+static enum st_retval
+sweep_source_filename(key, value)
+    char *key, *value;
+{
+    if (*value) {
+	*value = 0;
+	return ST_CONTINUE;
+    }
+    else {
+	free(value);
+	return ST_DELETE;
     }
 }
@@ -861,11 +873,4 @@ rb_gc_mark_children(ptr)
 static void obj_free _((VALUE));
 
-static enum st_retval
-sweep_tbl_value(key, value)
-    VALUE key, value;
-{
-    return FL_TEST(value, FL_MARK) ? ST_CONTINUE : ST_DELETE;
-}
-
 static void
 gc_sweep()
@@ -887,5 +892,5 @@ gc_sweep()
     }
 
-    st_foreach(source_filenames, sweep_tbl_value, 0);
+    st_foreach(source_filenames, sweep_source_filename, 0);
 
     freelist = 0;


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread