[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24604] Re: unpack("p") dumps core

From: Yukihiro Matsumoto <matz@...>
Date: 2004-10-26 22:45:04 UTC
List: ruby-dev #24604
まつもと ゆきひろです

In message "Re: [ruby-dev:24601] Re: unpack("p") dumps core"
    on Tue, 26 Oct 2004 21:50:18 +0900, nobu@ruby-lang.org writes:

|> RESIZE_CAPA()でSTR_ASSOCを見ることで問題は解決するような気が
|> します。
|
|aux.capaを変更 == aux.sharedは無効、ということですね。他のcapa
|を変更しているところはSTR_ASSOCをクリアしているようです。

じゃなくて、STR_ASSOCかELTS_SHAREがセットされている時には
capaを変更しない(lenがcapaを兼ねる)という意味です。

--- string.c	21 Oct 2004 15:20:41 -0000	1.209
+++ string.c	26 Oct 2004 22:43:35 -0000
@@ -30,2 +30,3 @@ VALUE rb_cString;
 #define STR_ASSOC   FL_USER3
+#define STR_NOCAPA  (ELTS_SHARED|STR_ASSOC)
 
@@ -33,3 +34,4 @@ VALUE rb_cString;
     REALLOC_N(RSTRING(str)->ptr, char, (capacity)+1);\
-    RSTRING(str)->aux.capa = (capacity);\
+    if (!FL_TEST(str, STR_NOCAPA))\
+        RSTRING(str)->aux.capa = (capacity);\
 } while (0)

|Stringをバッファにするということでどうでしょうか。

効率はどうなんだろうと思いましたが、結局はobject cellを1個割
り当てるかどうかの違いだけのようにも思うのでこっちは取り込み
たいです。コミットしてくださいませんか。

In This Thread

Prev Next