From f449c04a3648f56a535399d4108b738e36059455 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 10 Dec 2003 08:26:36 +0000 Subject: * io.c (read_all): should return given string even if data read is empty. [ruby-dev:22207] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ error.c | 2 -- ext/curses/curses.c | 6 ++---- ext/iconv/iconv.c | 3 +-- gc.c | 2 -- io.c | 3 +-- lib/weakref.rb | 28 ++++++++++++++-------------- 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index febdaf2997..845ec6d720 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Dec 10 17:17:18 2003 Yukihiro Matsumoto + + * io.c (read_all): should return given string even if data read is + empty. [ruby-dev:22207] + Wed Dec 10 17:16:06 2003 Nobuyoshi Nakada * ext/stringio/stringio.c (strio_read): adjust behavior at reading diff --git a/error.c b/error.c index d6b8be4c4d..05979ed6d1 100644 --- a/error.c +++ b/error.c @@ -642,8 +642,6 @@ syserr_eqq(self, exc) return Qfalse; } -static void init_syserr _((void)); - void Init_Exception() { diff --git a/ext/curses/curses.c b/ext/curses/curses.c index 2e60b21609..106c43da4c 100644 --- a/ext/curses/curses.c +++ b/ext/curses/curses.c @@ -621,7 +621,7 @@ curses_pair_number(VALUE obj, VALUE attrs) { return INT2FIX(PAIR_NUMBER(NUM2INT(attrs))); } -#endif +#endif /* USE_COLOR */ #ifdef USE_MOUSE struct mousedata { @@ -1443,7 +1443,7 @@ Init_curses() #endif /* USE_COLOR */ #ifdef USE_MOUSE rb_define_module_function(mCurses, "getmouse", curses_getmouse, 0); - rb_define_module_function(mCurses, "ungetmouse", curses_getmouse, 1); + rb_define_module_function(mCurses, "ungetmouse", curses_ungetmouse, 1); rb_define_module_function(mCurses, "mouseinterval", curses_mouseinterval, 1); rb_define_module_function(mCurses, "mousemask", curses_mousemask, 1); #endif /* USE_MOUSE */ @@ -1489,14 +1489,12 @@ Init_curses() rb_define_method(cWindow, "keypad", window_keypad, 1); rb_define_method(cWindow, "keypad=", window_keypad, 1); -#ifdef USE_COLOR rb_define_method(cWindow, "attroff", window_attroff, 1); rb_define_method(cWindow, "attron", window_attron, 1); rb_define_method(cWindow, "attrset", window_attrset, 1); rb_define_method(cWindow, "bkgdset", window_bkgdset, 1); rb_define_method(cWindow, "bkgd", window_bkgd, 1); rb_define_method(cWindow, "getbkgd", window_getbkgd, 0); -#endif /* USE_COLOR */ rb_define_method(cWindow, "nodelay=", window_nodelay, 1); rb_define_method(cWindow, "timeout=", window_timeout, 1); diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 90bf024afb..5327797856 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -426,7 +426,7 @@ iconv_convert } else { /* Some iconv() have a bug, return *outlen out of range */ - sprintf(errmsg, "bug?(output length = %d)", sizeof(buffer) - outlen); + sprintf(errmsg, "bug?(output length = %ld)", sizeof(buffer) - outlen); error = rb_eIconvOutOfRange; } @@ -836,7 +836,6 @@ void Init_iconv _((void)) { VALUE rb_cIconv = rb_define_class("Iconv", rb_cData); - VALUE metaclass = RBASIC(rb_cIconv)->klass; rb_define_alloc_func(rb_cIconv, iconv_s_allocate); rb_define_singleton_method(rb_cIconv, "open", iconv_s_open, 2); diff --git a/gc.c b/gc.c index 6fd6a9953e..8aab6cc4f6 100644 --- a/gc.c +++ b/gc.c @@ -579,7 +579,6 @@ void rb_gc_mark_locations(start, end) VALUE *start, *end; { - VALUE *tmp; long n; n = end - start; @@ -655,7 +654,6 @@ gc_mark(ptr, lev) VALUE ptr; int lev; { - int ret; register RVALUE *obj; obj = RANY(ptr); diff --git a/io.c b/io.c index 593e1facc2..19690ddc4d 100644 --- a/io.c +++ b/io.c @@ -801,7 +801,6 @@ read_all(fptr, siz, str) siz += BUFSIZ; rb_str_resize(str, siz); } - if (bytes == 0) return rb_str_new(0,0); if (bytes != siz) rb_str_resize(str, bytes); return str; @@ -3456,7 +3455,7 @@ rb_io_ctl(io, req, arg, io_p) rb_raise(rb_eArgError, "return value overflowed string"); } - if (fptr->f2 && fileno(fptr->f) != fileno(fptr->f2)) { + if (fptr->f2 && fileno(fptr->f) != fileno(fptr->f2)) { /* call on f2 too; ignore result */ io_cntl(fileno(fptr->f2), cmd, narg, io_p); } diff --git a/lib/weakref.rb b/lib/weakref.rb index 2e2a55ebe6..49b907ba17 100644 --- a/lib/weakref.rb +++ b/lib/weakref.rb @@ -16,24 +16,24 @@ class WeakRef [ref,...] - ID_REV_MAP = {} # ref -> obj + @@id_map = {} # obj -> [ref,...] + @@id_rev_map = {} # ref -> obj @@final = lambda{|id| __old_status = Thread.critical Thread.critical = true begin - rids = ID_MAP[id] + rids = @@id_map[id] if rids for rid in rids - ID_REV_MAP.delete(rid) + @@id_rev_map.delete(rid) end - ID_MAP.delete(id) + @@id_map.delete(id) end - rid = ID_REV_MAP[id] + rid = @@id_rev_map[id] if rid - ID_REV_MAP.delete(id) - ID_MAP[rid].delete(id) - ID_MAP.delete(rid) if ID_MAP[rid].empty? + @@id_rev_map.delete(id) + @@id_map[rid].delete(id) + @@id_map.delete(rid) if @@id_map[rid].empty? end ensure Thread.critical = __old_status @@ -48,16 +48,16 @@ class WeakRef