[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>

こんにちは、山本と申します。

26 messages 2007/11/08
[#32186] Re: Date#+に大きな数字を与えるとおかしな日付に — Tadayoshi Funaba <tadf@...> 2007/11/08

> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。

[#32188] Re: Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...> 2007/11/09

山本です。

[#32191] Re: Date#+に大きな数字を与えるとおかしな日付に — tadf@... 2007/11/09

> アルゴリズムの意味がわからないで書いた、表層的なパッチなので

[#32194] Re: Date#+に大きな数字を与えるとおかしな日付に — Yukihiro Matsumoto <matz@...> 2007/11/09

Hi,

[#32200] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Tadayoshi Funaba <tadf@...> 2007/11/10

> 1.9ではRationalとComplexを組み込みに、という話はありましたが、

[#32225] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Shin-ichiro HARA <sinara@...> 2007/11/12

原です。

[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>

遠藤と申します。

21 messages 2007/11/09
[#32199] Re: [提案] Array#tail — Yukihiro Matsumoto <matz@...> 2007/11/10

まつもと ゆきひろです

[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>

木村です。

16 messages 2007/11/24
[#32353] Re: 1.9.1のリリース時期について — Yukihiro Matsumoto <matz@...> 2007/11/24

まつもと ゆきひろです

[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>

こんばんは。

32 messages 2007/11/29
[#32414] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/11/30

卜部です。

[#32444] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Yukihiro Matsumoto <matz@...> 2007/12/03

まつもと ゆきひろです

[#32488] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/12/08

卜部です。

[#32525] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/10

遠藤と申します。

[#32643] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/19

遠藤です。

[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>

 ささだです.

10 messages 2007/11/30

[ruby-dev:32335] Re: x=0;defined?(foo(x)) dumps core

From: "Yusuke ENDOH" <mame@...>
Date: 2007-11-22 13:42:32 UTC
List: ruby-dev #32335
遠藤です。

さっきのパッチは不完全で def foo;end;x=0;defined?(foo(x)) で
落ちるようになってました。すみません。

もとのコードがどういう意図で書かれていたのかよくわからないのですが、
これが正解でしょうか。

$ ./ruby -e 'p defined?(foo)'
nil
$ ./ruby -e 'p defined?(foo(x))'
nil
$ ./ruby -e 'x=0;p defined?(foo(x))'
nil
$ ./ruby -e 'def foo;end;p defined?(foo)'
"method"
$ ./ruby -e 'def foo;end;p defined?(foo(x))'
nil
$ ./ruby -e 'def foo;end;x=0;p defined?(foo(x))'
"method"

# 最後の jump とか要らない気もします。


Index: compile.c
===================================================================
--- compile.c	(revision 13997)
+++ compile.c	(working copy)
@@ -2295,13 +2295,11 @@
 	if (node->nd_args) {
 	    lfalse = NEW_LABEL(nd_line(node));
 	    defined_expr(iseq, ret, node->nd_args, lfinish, Qfalse);
+	    ADD_INSNL(ret, nd_line(node), branchunless, lfalse);
 	}
 	if (!self) {
 	    LABEL *lcont = NEW_LABEL(nd_line(node));

-	    if (lfalse) {
-		ADD_INSNL(ret, nd_line(node), branchunless, lfalse);
-	    }
 	    defined_expr(iseq, ret, node->nd_recv, lfinish, Qfalse);
 	    ADD_INSNL(ret, nd_line(node), branchif, lcont);
 	    if (lfalse) {
@@ -2319,9 +2317,8 @@
 	    ADD_INSN(ret, nd_line(node), putself);
 	    ADD_INSN3(ret, nd_line(node), defined, INT2FIX(DEFINED_FUNC),
 		      ID2SYM(node->nd_mid), needstr);
+	    ADD_INSNL(ret, nd_line(node), jump, lfinish);
 	    if (lfalse) {
-		ADD_INSNL(ret, nd_line(node), branchif, lfinish);
-
 		ADD_LABEL(ret, lfalse);
 		ADD_INSN(ret, nd_line(node), putnil);
 		ADD_INSNL(ret, nd_line(node), jump, lfinish);

--
Yusuke ENDOH <mame@tsg.ne.jp>

In This Thread