mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* parse.y (struct parser_params): heap must be placed at same offset
also in ripper.y. fixed: [ruby-dev:27846] * parse.y (yycompile): prevent vparser from tail call optimization. fixed: [ruby-dev:27851] * parse.y (parser_mark): value needs to be marked. fixed: [ruby-dev:27845] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
684b527b58
commit
96aa0c2a8f
3 changed files with 29 additions and 16 deletions
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,14 @@
|
|||
Tue Nov 29 23:57:05 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* parse.y (struct parser_params): heap must be placed at same offset
|
||||
also in ripper.y. fixed: [ruby-dev:27846]
|
||||
|
||||
* parse.y (yycompile): prevent vparser from tail call optimization.
|
||||
fixed: [ruby-dev:27851]
|
||||
|
||||
* parse.y (parser_mark): value needs to be marked.
|
||||
fixed: [ruby-dev:27845]
|
||||
|
||||
Tue Nov 29 22:45:30 2005 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>
|
||||
|
||||
* lib/drb/observer.rb (notify_observers): follow change of observer.rb.
|
||||
|
@ -130,7 +141,7 @@ Wed Nov 23 20:59:01 2005 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
|||
[Tk8.5 feature].
|
||||
|
||||
* ext/tk/lib/tk/text.rb: supports new indices modifires on a Text
|
||||
widget [Tk8.5 feature].
|
||||
widget [Tk8.5 feature].
|
||||
|
||||
* ext/tk/lib/tk/virtevent.rb: add TkNamedVirtualEvent.
|
||||
|
||||
|
@ -162,13 +173,13 @@ Wed Nov 23 18:26:00 2005 Kouhei Sutou <kou@cozmixng.org>
|
|||
* lib/rss/taxonomy.rb: changed class or module prefix to
|
||||
Taxonomy from Taxo.
|
||||
* lib/rss/maker/taxonomy.rb: ditto.
|
||||
|
||||
|
||||
Wed Nov 23 18:21:11 2005 Kouhei Sutou <kou@cozmixng.org>
|
||||
|
||||
* lib/rss/maker/taxonomy.rb: implemented taxonomy module for RSS
|
||||
Maker.
|
||||
* lib/rss/taxonomy.rb: supported RSS Maker.
|
||||
* lib/rss/maker.rb: added taxonomy module support.
|
||||
* lib/rss/maker.rb: added taxonomy module support.
|
||||
|
||||
* lib/rss/rss.rb: adjusted to other element API.
|
||||
* lib/rss/1.0.rb: adjusted to other element API but backward
|
||||
|
|
6
node.h
6
node.h
|
@ -353,9 +353,9 @@ typedef struct RNode {
|
|||
VALUE rb_parser_new(void);
|
||||
VALUE rb_parser_end_seen_p(VALUE);
|
||||
|
||||
NODE *rb_parser_compile_cstr(volatile VALUE, const char*, const char*, int, int);
|
||||
NODE *rb_parser_compile_string(volatile VALUE, const char*, VALUE, int);
|
||||
NODE *rb_parser_compile_file(volatile VALUE, const char*, VALUE, int);
|
||||
NODE *rb_parser_compile_cstr(VALUE, const char*, const char*, int, int);
|
||||
NODE *rb_parser_compile_string(VALUE, const char*, VALUE, int);
|
||||
NODE *rb_parser_compile_file(VALUE, const char*, VALUE, int);
|
||||
|
||||
NODE *rb_compile_cstr(const char*, const char*, int, int);
|
||||
NODE *rb_compile_string(const char*, VALUE, int);
|
||||
|
|
22
parse.y
22
parse.y
|
@ -129,6 +129,8 @@ struct local_vars {
|
|||
token
|
||||
*/
|
||||
struct parser_params {
|
||||
NODE *heap;
|
||||
|
||||
union tmpyystype *parser_yylval; /* YYSTYPE not defined yet */
|
||||
VALUE eofp;
|
||||
|
||||
|
@ -179,10 +181,6 @@ struct parser_params {
|
|||
#endif
|
||||
int line_count;
|
||||
int has_shebang;
|
||||
|
||||
#ifdef YYMALLOC
|
||||
NODE *heap;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef YYMALLOC
|
||||
|
@ -4546,12 +4544,15 @@ static void parser_prepare(struct parser_params *parser);
|
|||
|
||||
#ifndef RIPPER
|
||||
static NODE*
|
||||
yycompile(struct parser_params *parser, const char *f, int line)
|
||||
yycompile(VALUE vparser, const char *f, int line)
|
||||
{
|
||||
int n;
|
||||
struct RVarmap *vp, *vars = ruby_dyna_vars;
|
||||
const char *kcode_save;
|
||||
volatile VALUE parser_save = vparser;
|
||||
struct parser_params *parser;
|
||||
|
||||
Data_Get_Struct(vparser, struct parser_params, parser);
|
||||
if (!compile_for_eval && rb_safe_level() == 0 &&
|
||||
rb_const_defined(rb_cObject, rb_intern("SCRIPT_LINES__"))) {
|
||||
VALUE hash, fname;
|
||||
|
@ -4642,7 +4643,7 @@ rb_compile_string(const char *f, VALUE s, int line)
|
|||
}
|
||||
|
||||
NODE*
|
||||
rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
|
||||
rb_parser_compile_string(VALUE vparser, const char *f, VALUE s, int line)
|
||||
{
|
||||
struct parser_params *parser;
|
||||
|
||||
|
@ -4653,7 +4654,7 @@ rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int lin
|
|||
lex_pbeg = lex_p = lex_pend = 0;
|
||||
compile_for_eval = ruby_in_eval;
|
||||
|
||||
return yycompile(parser, f, line);
|
||||
return yycompile(vparser, f, line);
|
||||
}
|
||||
|
||||
NODE*
|
||||
|
@ -4663,7 +4664,7 @@ rb_compile_cstr(const char *f, const char *s, int len, int line)
|
|||
}
|
||||
|
||||
NODE*
|
||||
rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
|
||||
rb_parser_compile_cstr(VALUE vparser, const char *f, const char *s, int len, int line)
|
||||
{
|
||||
return rb_parser_compile_string(vparser, f, rb_str_new(s, len), line);
|
||||
}
|
||||
|
@ -4683,7 +4684,7 @@ rb_compile_file(const char *f, VALUE file, int start)
|
|||
}
|
||||
|
||||
NODE*
|
||||
rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
|
||||
rb_parser_compile_file(VALUE vparser, const char *f, VALUE file, int start)
|
||||
{
|
||||
struct parser_params *parser;
|
||||
|
||||
|
@ -4692,7 +4693,7 @@ rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int st
|
|||
lex_input = file;
|
||||
lex_pbeg = lex_p = lex_pend = 0;
|
||||
|
||||
return yycompile(parser, f, start);
|
||||
return yycompile(vparser, f, start);
|
||||
}
|
||||
#endif /* !RIPPER */
|
||||
|
||||
|
@ -8698,6 +8699,7 @@ parser_mark(void *ptr)
|
|||
#else
|
||||
rb_gc_mark(p->parser_ruby_sourcefile);
|
||||
rb_gc_mark(p->delayed);
|
||||
rb_gc_mark(p->value);
|
||||
rb_gc_mark(p->result);
|
||||
rb_gc_mark(p->parsing_thread);
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue