aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-26 04:50:36 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-11-26 04:50:36 +0000
commit9e5c4cde2f219f9b37c3885a71faa05531305576 (patch)
tree6bcbb61d43f1203cd0586e4e3f72d416b6423298
parenta052ef75abbf7cc6035083a8af05cf4051ca0110 (diff)
downloadruby-9e5c4cde2f219f9b37c3885a71faa05531305576.tar.gz
* io.c (rb_io_initialize): should retrieve flags from copying file
descriptor. [ruby-dev:24961] * eval.c (method_missing): raise TypeError for classes do not have allocators. [ruby-core:03752] * lib/erb.rb: [ruby-core:03786] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--eval.c2
-rw-r--r--io.c12
3 files changed, 18 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 0b9fb920b4..fe255531f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Fri Nov 26 13:49:06 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * io.c (rb_io_initialize): should retrieve flags from copying file
+ descriptor. [ruby-dev:24961]
+
+ * eval.c (method_missing): raise TypeError for classes do not
+ have allocators. [ruby-core:03752]
+
+ * lib/erb.rb: [ruby-core:03786]
+
Fri Nov 26 13:29:02 2004 Dave Thomas <dave@pragprog.com>
* lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Break
diff --git a/eval.c b/eval.c
index e2651b5ca4..a2e50cce51 100644
--- a/eval.c
+++ b/eval.c
@@ -5356,7 +5356,7 @@ method_missing(obj, id, argc, argv, call_status)
POP_FRAME();
}
else if (id == ID_ALLOCATOR) {
- rb_raise(rb_eNoMethodError, "allocator undefined for %s", rb_class2name(obj));
+ rb_raise(rb_eTypeError, "allocator undefined for %s", rb_class2name(obj));
}
nargv = ALLOCA_N(VALUE, argc+1);
diff --git a/io.c b/io.c
index 99cbd1fb53..ef840e9225 100644
--- a/io.c
+++ b/io.c
@@ -3971,11 +3971,13 @@ rb_io_initialize(argc, argv, io)
flags = rb_io_mode_modenum(RSTRING(mode)->ptr);
}
}
- else if (!NIL_P(orig)) {
- GetOpenFile(orig, ofp);
- if (ofp->refcnt == LONG_MAX) {
- VALUE s = rb_inspect(orig);
- rb_raise(rb_eIOError, "too many shared IO for %s", StringValuePtr(s));
+ else {
+ if (!NIL_P(orig)) {
+ GetOpenFile(orig, ofp);
+ if (ofp->refcnt == LONG_MAX) {
+ VALUE s = rb_inspect(orig);
+ rb_raise(rb_eIOError, "too many shared IO for %s", StringValuePtr(s));
+ }
}
#if defined(HAVE_FCNTL) && defined(F_GETFL)
flags = fcntl(fd, F_GETFL);