зеркало из https://github.com/github/ruby.git
* parse.y (lex_getline): should not touch ruby_debug_lines if
RIPPER is defined. [ruby-dev:24547] * string.c (str_gsub): reentrant check. [ruby-dev:24432] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
93931a0d93
Коммит
7d7d82463d
|
@ -1,3 +1,12 @@
|
|||
Thu Oct 21 00:36:41 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* parse.y (lex_getline): should not touch ruby_debug_lines if
|
||||
RIPPER is defined. [ruby-dev:24547]
|
||||
|
||||
Wed Oct 20 19:45:13 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
|
||||
|
||||
* string.c (str_gsub): reentrant check. [ruby-dev:24432]
|
||||
|
||||
Wed Oct 20 12:42:53 2004 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* io.c (rb_io_getline): rs modification check should not interfere
|
||||
|
|
3
io.c
3
io.c
|
@ -1131,6 +1131,9 @@ io_readpartial(argc, argv, io)
|
|||
return str;
|
||||
|
||||
READ_CHECK(fptr->f);
|
||||
if (RSTRING(str)->len != len) {
|
||||
rb_raise(rb_eRuntimeError, "buffer string modified");
|
||||
}
|
||||
n = read_buffered_data(RSTRING(str)->ptr, len, fptr->f);
|
||||
if (n <= 0) {
|
||||
again:
|
||||
|
|
2
parse.y
2
parse.y
|
@ -4404,9 +4404,11 @@ lex_getline(parser)
|
|||
struct parser_params *parser;
|
||||
{
|
||||
VALUE line = (*parser->parser_lex_gets)(parser, parser->parser_lex_input);
|
||||
#ifndef RIPPER
|
||||
if (ruby_debug_lines && !NIL_P(line)) {
|
||||
rb_ary_push(ruby_debug_lines, line);
|
||||
}
|
||||
#endif
|
||||
return line;
|
||||
}
|
||||
|
||||
|
|
3
string.c
3
string.c
|
@ -2048,6 +2048,9 @@ str_gsub(argc, argv, str, bang)
|
|||
if (iter) {
|
||||
rb_match_busy(match);
|
||||
val = rb_obj_as_string(rb_yield(rb_reg_nth_match(0, match)));
|
||||
if (RSTRING(str)->ptr == buf) {
|
||||
rb_raise(rb_eRuntimeError, "gsub reentered");
|
||||
}
|
||||
rb_backref_set(match);
|
||||
}
|
||||
else {
|
||||
|
|
Загрузка…
Ссылка в новой задаче