X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=ext%2Fext.c;h=266cbfbbcb05f49fb843f761ea391bd832f84e3d;hb=b2a7264f8567da25c037ad52e7e3d2a9baea17cd;hp=e36442f9501e5025132db4e71bf8a282017773f5;hpb=b0bad9534611464914a7d7f5563b515e180e1f20;p=ruby-eet.git diff --git a/ext/ext.c b/ext/ext.c index e36442f..266cbfb 100644 --- a/ext/ext.c +++ b/ext/ext.c @@ -1,5 +1,5 @@ /* - * $Id: ext.c 63 2005-06-09 17:47:46Z tilman $ + * $Id: ext.c 65 2005-06-28 18:40:59Z tilman $ * * Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) * @@ -444,11 +444,11 @@ stream_serialize (VALUE self) struct RArray *stream; long i; - ret = rb_str_new2 (""); - stream = RARRAY (self); if (!stream->len) - return ret; + return rb_str_new2 (""); + + ret = rb_ary_new (); for (i = 0; i < stream->len; i++) { VALUE str; @@ -458,10 +458,10 @@ stream_serialize (VALUE self) str = rb_funcall (stream->ptr[i], id_serialize, 0, NULL); - rb_str_append (ret, str); + rb_ary_push (ret, str); } - return ret; + return rb_ary_join (ret, Qnil); } static VALUE @@ -472,7 +472,7 @@ chunk_init (VALUE self, VALUE tag, VALUE data) StringValue (tag); StringValue (data); - if (rb_funcall (tag, id_include, 1, INT2FIX (0)) == Qtrue) \ + if (rb_funcall (tag, id_include, 1, INT2FIX (0)) == Qtrue) rb_raise (rb_eArgError, "tag must not contain binary zeroes"); /* libeet uses a signed 32bit integer to store the