Time.now <=> SimpleDelegator.new(Time.now) e$B$,e(B nil e$B$K$J$k$N$Oe(B
SimpleDelegator.new(Time.now) <=> Time.now e$B$,$=$&$J$i$J$$$Ne(B
e$B$H0c$C$F$h$m$7$/$J$$$s$8$c$J$$$G$7$g$&$+!#e(B
% ./ruby -rdelegate -ve ’
t = Time.now
d = SimpleDelegator.new(Time.now)
p t <=> d
p d <=> t
’
ruby 1.9.0 (2008-06-09 revision 17043) [i686-linux]
/home/akr/ruby/yarvo0/lib/ruby/1.9.0/delegate.rb:225: warning: instance
variable @delegate_sd_obj not initialized
nil
1
e$B%o%J%Y$H?=$7$^$9!#e(B
2008/06/09 15:56 Tanaka A. [email protected]:
Time.now <=> SimpleDelegator.new(Time.now) e$B$,e(B nil e$B$K$J$k$N$Oe(B
SimpleDelegator.new(Time.now) <=> Time.now e$B$,$=$&$J$i$J$$$Ne(B
e$B$H0c$C$F$h$m$7$/$J$$$s$8$c$J$$$G$7$g$&$+!#e(B
e$B%Q%C%A$r=q$$$F$_$^$7$?$,e(B rb_funcall
e$B$,B?$/!“7k2L$,%3%9%H$K8+9g$C$F$$$J$$5$$,$7$^$9!#e(B
e$B$J$K$+NI$$J}K!$r$4B8CN$NJ}$O65$($F$$$?$@$1$k$H$”$j$,$?$$$G$9!#e(B
Index: time.c
— time.c (revision 18196)
+++ time.c (working copy)
@@ -1087,7 +1087,16 @@
if (tobj1->ts.tv_sec > tobj2->ts.tv_sec) return INT2FIX(1);
return INT2FIX(-1);
}
-
else if (RTEST(rb_funcall(time2, rb_intern(“kind_of?”), 1,
rb_cTime))) {
-
VALUE tmp = rb_funcall(time2, rb_intern(“<=>”), 1, time1);
-
if (NIL_P(tmp)) return Qnil;
-
if (!FIXNUM_P(tmp)) {
-
return rb_funcall(LONG2FIX(0), '-', 1, tmp);
-
}
-
return LONG2NUM(-FIX2LONG(tmp));
-
}
-
return Qnil;
}
e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B
In message “Re: [ruby-dev:35830] Re: [Bug:1.9] Time.now <=>
SimpleDelegator.new(Time.now)”
on Tue, 12 Aug 2008 18:49:39 +0900, wanabe [email protected]
writes:
|2008/06/09 15:56 Tanaka A. [email protected]:
|> Time.now <=> SimpleDelegator.new(Time.now) e$B$,e(B nil e$B$K$J$k$N$Oe(B
|> SimpleDelegator.new(Time.now) <=> Time.now e$B$,$=$&$J$i$J$$$Ne(B
|> e$B$H0c$C$F$h$m$7$/$J$$$s$8$c$J$$$G$7$g$&$+!#e(B
|
|e$B%Q%C%A$r=q$$$F$_$^$7$?$,e(B rb_funcall e$B$,B?$/!“7k2L$,%3%9%H$K8+9g$C$F$$$J$$5$$,$7$^$9!#e(B
|e$B$J$K$+NI$$J}K!$r$4B8CN$NJ}$O65$($F$$$?$@$1$k$H$”$j$,$?$$$G$9!#e(B
<=>e$B$,7?$,9g$o$J$$$He(Bnile$B$rJV$9$3$H$,4|BT$5$l$F$$$k$3$H$rMxMQ$7e(B
e$B$F0J2<$N$h$&$K$7$F$_$^$7$?!#e(B
— a/time.c
+++ b/time.c
@@ -1087,8 +1087,18 @@ time_cmp(VALUE time1, VALUE time2)
if (tobj1->ts.tv_sec > tobj2->ts.tv_sec) return INT2FIX(1);
return INT2FIX(-1);
}
- else {
- VALUE cmp;
- int n;
-
- cmp = rb_funcall(time2, rb_intern(“<=>”), 1, time1);
- if (NIL_P(cmp)) return Qnil;
- n = rb_cmpint(cmp, time1, time2);
- if (n == 0) return INT2FIX(0);
- if (n > 0) return INT2FIX(1);
- return INT2FIX(-1);
- }
}
/*