* 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
This commit is contained in:
matz 2004-11-26 04:50:36 +00:00
Родитель a052ef75ab
Коммит 9e5c4cde2f
3 изменённых файлов: 18 добавлений и 6 удалений

Просмотреть файл

@ -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

2
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);

12
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);