diff --git a/ext/bzip2/reader.c b/ext/bzip2/reader.c index c535799..1eedacc 100644 --- a/ext/bzip2/reader.c +++ b/ext/bzip2/reader.c @@ -316,7 +316,6 @@ VALUE bz_reader_read(int argc, VALUE *argv, VALUE obj) { OBJ_TAINT(res); } if (n == 0) { - free(bzf->buf); return res; } while (1) { @@ -326,14 +325,12 @@ VALUE bz_reader_read(int argc, VALUE *argv, VALUE obj) { res = rb_str_cat(res, bzf->bzs.next_out, n); bzf->bzs.next_out += n; bzf->bzs.avail_out -= n; - free(bzf->buf); return res; } if (total) { res = rb_str_cat(res, bzf->bzs.next_out, total); } if (bz_next_available(bzf, 0) == BZ_STREAM_END) { - free(bzf->buf); return res; } } diff --git a/ext/bzip2/writer.c b/ext/bzip2/writer.c index 6c999ea..85bd543 100644 --- a/ext/bzip2/writer.c +++ b/ext/bzip2/writer.c @@ -161,11 +161,6 @@ VALUE bz_writer_close(VALUE obj) { Get_BZ2(obj, bzf); res = bz_writer_internal_close(bzf); -#ifndef RUBINIUS - if (!NIL_P(res) && (bzf->flags & BZ2_RB_INTERNAL)) { - RBASIC(res)->klass = rb_cString; - } -#endif return res; }