[#25010] test_flush fails. — "URABE Shyouhei aka.mput" <root@...>
mput です。以下のように test_flush が失敗します。
[#25031] Method#to_proc とブロックの引渡し — Masahiro Sakai (酒井政裕) <sakai@...>
酒井といいます。
[#25035] 拡張ライブラリへの共有ライブラリのPATHの埋め込み — Takahiro Kambe <taca@...>
こんにちは。
なかだです。
In message <200412060607.iB667giF007533@sharui.nakada.niregi.kanuma.tochigi.jp>
なかだです。
In message <200412070015.iB70FAiF012770@sharui.nakada.niregi.kanuma.tochigi.jp>
2004-12-07 (火) の 12:27 +0900 に Takahiro Kambe さんは書きました:
こんにちは、なかむら(う)です。
In message <1102395885.21598.19.camel@rice.p.arika.org>
なかだです。
In message <200412071613.iB7GD2r4007918@sharui.nakada.niregi.kanuma.tochigi.jp>
[#25041] temporal locking already locked string on simultaneous write — Tanaka Akira <akr@...17n.org>
同じ文字列をほぼ同時に IO に書き込むと、temporal locking already
まつもと ゆきひろです
In article <1102133507.339625.10453.nullmailer@x31.priv.netlab.jp>,
In article <1102176395.383559.21204.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
Tietew です。
[#25054] rexml — Takahiro Kambe <taca@...>
こんばんは。
なかだです。
In message <200412051451.iB5EpYiF009060@sharui.nakada.niregi.kanuma.tochigi.jp>
まつもと ゆきひろです
In message <1102290330.040938.1210.nullmailer@x31.priv.netlab.jp>
[#25096] double free problem — "Akinori MUSHA" <knu@...>
ご無沙汰しております。
Hi,
In article <1102401703.030252.2480.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
Yukihiro Matsumoto wrote:
Yukihiro Matsumoto wrote:
In article <41BEF768.7030008@ttsky.net>,
Tanaka Akira wrote:
[#25101] non-stdio buffering — Tanaka Akira <akr@...17n.org>
えぇと、今回 1.9 でなにが起きたのかを私が把握している範囲でまとめてお
こんにちは、なかむら(う)です。
In article <20041208.033521.635728872.gotoyuzo@sawara.does.notwork.org>,
[#25103] ruby_xrealloc dumps core — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
[#25134] Set/test_eq failed on Tru64UNIX — Minero Aoki <aamine@...>
青木です。
なかだです。
まつもと ゆきひろです
[#25152] 1.8 reopen problem with duplex popen — Tanaka Akira <akr@...17n.org>
次のように、1.8 で双方向 popen な IO を reopen するとエラーになること
なかだです。
In article <200412110142.iBB1gDIh004622@sharui.nakada.niregi.kanuma.tochigi.jp>,
なかだです。
わたなべです。
In article <41-Tue21Dec2004123451+0900-eban@os.rim.or.jp>,
[#25158] core dump on NetBSD 2.0 — Tanaka Akira <akr@...17n.org>
NetBSD 2.0 で次のようにすると core を吐きます。
In article <87hdmsivva.fsf@serein.a02.aist.go.jp>,
In article <87ekhwiv7g.fsf@serein.a02.aist.go.jp>,
なかだです。
In article <200412130040.iBD0e8Qh003275@sharui.nakada.niregi.kanuma.tochigi.jp>,
まつもと ゆきひろです
In article <1102906796.625997.23964.nullmailer@x31.priv.netlab.jp>,
前田です。
In article <41BD40DC.6030706@ruby-lang.org>,
まつもと ゆきひろです
[#25160] ripper in snapshot.tar.gz — Tanaka Akira <akr@...17n.org>
ふと、とある autoconf も bison も入っていない環境で Ruby をコンパイル
[#25193] 1.8.2 release schedule — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#25226] Zlib::Deflate.deflate dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
[#25236] BSD/OS rlim_t — OHARA Shigeki <os@...>
大原です。
[#25252] core dump if local_append_gen invokes GC — Tanaka Akira <akr@...17n.org>
先程 1.9 を make test-all したところ、
[#25270] BSD/OS LDSHARED — OHARA Shigeki <os@...>
大原です。
[#25283] 1.8.2 preview4 — Yukihiro Matsumoto <matz@...>
Hello,
[#25292] tkutil is installed on no tcl/tk environment — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、Tcl/Tk が入っていない環境でも、tkutil は
[#25299] Re: リリース準備 — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
高橋征義です。
山本です。
小西 弘将です。
山本です。
山本です。
山本です。
永井@知能.九工大です.
[#25302] test_readline.rb blocks on BSD again — GOTOU Yuuzou <gotoyuzo@...>
In message <20041223175402.3116FC6718@lithium.ruby-lang.org>,
In message <20041224.131211.846943951.gotoyuzo@sawara.does.notwork.org>,
まつもと ゆきひろです
わたなべです。
In message <20041225140050.378109.eban@os.rim.or.jp>,
なかだです。
In article <200412251620.iBPGK1xA009288@sharui.nakada.niregi.kanuma.tochigi.jp>,
なかだです。
In article <200412260300.iBQ3038u005055@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#25336] webrick/httpauth.rb must require 'base64' — sheepman <sheepman@...>
こんにちは、sheepman です。
[#25341] String#center dumps core — Tanaka Akira <akr@...17n.org>
次のようにすると core を吐きます。
なかだです。
[#25342] 1.9.0でbcc版がコンパイルできない — 小西 弘将 <konishih@...6.so-net.ne.jp>
小西 弘将です。
山本です。
[#25365] method(:p).to_proc.call([]) — Masahiro Sakai (酒井政裕) <sakai@...>
酒井です。
[#25370] FileUtils.copy_stream on nonblocking IO — Tanaka Akira <akr@...17n.org>
FileUtils.copy_stream を nonblocking な IO に対して使うと、次のように
[ruby-dev:25318] Re: Zlib memory leak ([ruby-list:39235])
なかだです。
At Fri, 24 Dec 2004 21:34:27 +0900,
sheepman wrote in [ruby-dev:25309]:
> [ruby-list:39235] で報告した Zlib のメモリリークに対するパッチを書いてみました。
見落としてました。
こういう場合、GCに任せるよりもその場で解放してしまったほうがい
いような気もします。
* ext/zlib/zlib.c (rb_deflate_s_deflate, rb_inflate_s_inflate): ensure
freeing internal zstreams. fixed: [ruby-dev:25309]
* ext/zlib/zlib.c (rb_deflate_init_copy): replace rb_deflate_clone.
Index: ext/zlib/zlib.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/zlib/zlib.c,v
retrieving revision 1.24
diff -U2 -p -r1.24 zlib.c
--- ext/zlib/zlib.c 18 Dec 2004 07:36:33 -0000 1.24
+++ ext/zlib/zlib.c 25 Dec 2004 05:20:59 -0000
@@ -56,5 +56,5 @@ static void zstream_passthrough_input _(
static VALUE zstream_detach_input _((struct zstream*));
static void zstream_reset _((struct zstream*));
-static void zstream_end _((struct zstream*));
+static VALUE zstream_end _((struct zstream*));
static void zstream_run _((struct zstream*, Bytef*, uInt, int));
static VALUE zstream_sync _((struct zstream*, Bytef*, uInt));
@@ -81,5 +81,6 @@ static VALUE rb_zstream_closed_p _((VALU
static VALUE rb_deflate_s_allocate _((VALUE));
static VALUE rb_deflate_initialize _((int, VALUE*, VALUE));
-static VALUE rb_deflate_clone _((VALUE));
+static VALUE rb_deflate_init_copy _((VALUE, VALUE));
+static VALUE deflate_run _((VALUE));
static VALUE rb_deflate_s_deflate _((int, VALUE*, VALUE));
static void do_deflate _((struct zstream*, VALUE, int));
@@ -90,4 +91,5 @@ static VALUE rb_deflate_params _((VALUE,
static VALUE rb_deflate_set_dictionary _((VALUE, VALUE));
+static VALUE inflate_run _((VALUE));
static VALUE rb_inflate_s_allocate _((VALUE));
static VALUE rb_inflate_initialize _((int, VALUE*, VALUE));
@@ -671,5 +673,5 @@ zstream_reset(z)
}
-static void
+static VALUE
zstream_end(z)
struct zstream *z;
@@ -696,4 +698,5 @@ zstream_end(z)
}
z->flags = 0;
+ return Qnil;
}
@@ -1156,24 +1159,29 @@ rb_deflate_initialize(argc, argv, obj)
*/
static VALUE
-rb_deflate_clone(obj)
- VALUE obj;
+rb_deflate_init_copy(self, orig)
+ VALUE self, orig;
{
- struct zstream *z = get_zstream(obj);
- struct zstream *z2;
- VALUE clone;
+ struct zstream *z1 = get_zstream(self);
+ struct zstream *z2 = get_zstream(orig);
int err;
- clone = zstream_deflate_new(rb_class_of(obj));
- Data_Get_Struct(clone, struct zstream, z2);
-
- err = deflateCopy(&z2->stream, &z->stream);
+ err = deflateCopy(&z1->stream, &z2->stream);
if (err != Z_OK) {
raise_zlib_error(err, 0);
}
+ z1->flags = z2->flags;
- z2->flags = z->flags;
- CLONESETUP(clone, obj);
- OBJ_INFECT(clone, obj);
- return clone;
+ return self;
+}
+
+static VALUE
+deflate_run(args)
+ VALUE args;
+{
+ struct zstream *z = (struct zstream *)((VALUE *)args)[0];
+ VALUE src = ((VALUE *)args)[1];
+
+ zstream_run(z, RSTRING(src)->ptr, RSTRING(src)->len, Z_FINISH);
+ return zstream_detach_buffer(z);
}
@@ -1205,5 +1213,5 @@ rb_deflate_s_deflate(argc, argv, klass)
{
struct zstream z;
- VALUE src, level, dst;
+ VALUE src, level, dst, args[2];
int err, lev;
@@ -1219,7 +1227,7 @@ rb_deflate_s_deflate(argc, argv, klass)
ZSTREAM_READY(&z);
- zstream_run(&z, RSTRING(src)->ptr, RSTRING(src)->len, Z_FINISH);
- dst = zstream_detach_buffer(&z);
- zstream_end(&z);
+ args[0] = (VALUE)&z;
+ args[1] = src;
+ dst = rb_ensure(deflate_run, (VALUE)args, zstream_end, (VALUE)&z);
OBJ_INFECT(dst, src);
@@ -1434,4 +1442,16 @@ rb_inflate_initialize(argc, argv, obj)
}
+static VALUE
+inflate_run(args)
+ VALUE args;
+{
+ struct zstream *z = (struct zstream *)((VALUE *)args)[0];
+ VALUE src = ((VALUE *)args)[1];
+
+ zstream_run(z, RSTRING(src)->ptr, RSTRING(src)->len, Z_SYNC_FLUSH);
+ zstream_run(z, "", 0, Z_FINISH); /* for checking errors */
+ return zstream_detach_buffer(z);
+}
+
/*
* call-seq: Zlib::Inflate.inflate(string)
@@ -1456,5 +1476,5 @@ rb_inflate_s_inflate(obj, src)
{
struct zstream z;
- VALUE dst;
+ VALUE dst, args[2];
int err;
@@ -1467,8 +1487,7 @@ rb_inflate_s_inflate(obj, src)
ZSTREAM_READY(&z);
- zstream_run(&z, RSTRING(src)->ptr, RSTRING(src)->len, Z_SYNC_FLUSH);
- zstream_run(&z, "", 0, Z_FINISH); /* for checking errors */
- dst = zstream_detach_buffer(&z);
- zstream_end(&z);
+ args[0] = (VALUE)&z;
+ args[1] = src;
+ dst = rb_ensure(inflate_run, (VALUE)args, zstream_end, (VALUE)&z);
OBJ_INFECT(dst, src);
@@ -3439,5 +3458,5 @@ void Init_zlib()
rb_define_alloc_func(cDeflate, rb_deflate_s_allocate);
rb_define_method(cDeflate, "initialize", rb_deflate_initialize, -1);
- rb_define_method(cDeflate, "clone", rb_deflate_clone, 0);
+ rb_define_method(cDeflate, "initialize_copy", rb_deflate_init_copy, 0);
rb_define_method(cDeflate, "deflate", rb_deflate_deflate, -1);
rb_define_method(cDeflate, "<<", rb_deflate_addstr, 1);
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦