* iseq.c (iseq_data_to_ary): internal IDs must not be exposed.
[ruby-core:11073] * parse.y (internal_id_gen): now returns scope local ID instead of global one. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
cb272b7c2d
commit
a1295b0f79
@ -1,3 +1,11 @@
|
|||||||
|
Fri May 11 15:27:09 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* iseq.c (iseq_data_to_ary): internal IDs must not be exposed.
|
||||||
|
[ruby-core:11073]
|
||||||
|
|
||||||
|
* parse.y (internal_id_gen): now returns scope local ID instead of
|
||||||
|
global one.
|
||||||
|
|
||||||
Thu May 10 15:15:53 2007 NAKAMURA Usaku <usa@ruby-lang.org>
|
Thu May 10 15:15:53 2007 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
* test/ruby/test_super.rb: add tests.
|
* test/ruby/test_super.rb: add tests.
|
||||||
|
4
iseq.c
4
iseq.c
@ -1139,7 +1139,7 @@ iseq_data_to_ary(rb_iseq_t *iseq)
|
|||||||
for (i=0; i<iseq->local_table_size; i++) {
|
for (i=0; i<iseq->local_table_size; i++) {
|
||||||
ID lid = iseq->local_table[i];
|
ID lid = iseq->local_table[i];
|
||||||
if (lid) {
|
if (lid) {
|
||||||
rb_ary_push(locals, ID2SYM(lid));
|
if (rb_id2str(lid)) rb_ary_push(locals, ID2SYM(lid));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rb_ary_push(locals, ID2SYM(rb_intern("#arg_rest")));
|
rb_ary_push(locals, ID2SYM(rb_intern("#arg_rest")));
|
||||||
@ -1180,10 +1180,10 @@ iseq_data_to_ary(rb_iseq_t *iseq)
|
|||||||
|
|
||||||
/* body */
|
/* body */
|
||||||
for (seq = iseq->iseq; seq < iseq->iseq + iseq->size; ) {
|
for (seq = iseq->iseq; seq < iseq->iseq + iseq->size; ) {
|
||||||
VALUE ary = rb_ary_new();
|
|
||||||
VALUE insn = *seq++;
|
VALUE insn = *seq++;
|
||||||
int j, len = insn_len(insn);
|
int j, len = insn_len(insn);
|
||||||
VALUE *nseq = seq + len - 1;
|
VALUE *nseq = seq + len - 1;
|
||||||
|
VALUE ary = rb_ary_new2(len);
|
||||||
|
|
||||||
rb_ary_push(ary, insn_syms[insn]);
|
rb_ary_push(ary, insn_syms[insn]);
|
||||||
for (j=0; j<len-1; j++, seq++) {
|
for (j=0; j<len-1; j++, seq++) {
|
||||||
|
8
parse.y
8
parse.y
@ -387,7 +387,8 @@ static int local_id_gen(struct parser_params*, ID);
|
|||||||
#define local_id(id) local_id_gen(parser, id)
|
#define local_id(id) local_id_gen(parser, id)
|
||||||
static ID *local_tbl_gen(struct parser_params*);
|
static ID *local_tbl_gen(struct parser_params*);
|
||||||
#define local_tbl() local_tbl_gen(parser)
|
#define local_tbl() local_tbl_gen(parser)
|
||||||
static ID internal_id(void);
|
static ID internal_id_gen(struct parser_params*);
|
||||||
|
#define internal_id() internal_id_gen(parser)
|
||||||
|
|
||||||
static void dyna_push_gen(struct parser_params*);
|
static void dyna_push_gen(struct parser_params*);
|
||||||
#define dyna_push() dyna_push_gen(parser)
|
#define dyna_push() dyna_push_gen(parser)
|
||||||
@ -8270,9 +8271,10 @@ rb_gc_mark_symbols(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static ID
|
static ID
|
||||||
internal_id(void)
|
internal_id_gen(struct parser_params *parser)
|
||||||
{
|
{
|
||||||
return ID_INTERNAL | (++global_symbols.last_id << ID_SCOPE_SHIFT);
|
ID id = (ID)vtable_size(lvtbl->args) + (ID)vtable_size(lvtbl->vars);
|
||||||
|
return ID_INTERNAL | (id << ID_SCOPE_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#define RUBY_VERSION "1.9.0"
|
#define RUBY_VERSION "1.9.0"
|
||||||
#define RUBY_RELEASE_DATE "2007-05-10"
|
#define RUBY_RELEASE_DATE "2007-05-11"
|
||||||
#define RUBY_VERSION_CODE 190
|
#define RUBY_VERSION_CODE 190
|
||||||
#define RUBY_RELEASE_CODE 20070510
|
#define RUBY_RELEASE_CODE 20070511
|
||||||
#define RUBY_PATCHLEVEL 0
|
#define RUBY_PATCHLEVEL 0
|
||||||
|
|
||||||
#define RUBY_VERSION_MAJOR 1
|
#define RUBY_VERSION_MAJOR 1
|
||||||
@ -9,7 +9,7 @@
|
|||||||
#define RUBY_VERSION_TEENY 0
|
#define RUBY_VERSION_TEENY 0
|
||||||
#define RUBY_RELEASE_YEAR 2007
|
#define RUBY_RELEASE_YEAR 2007
|
||||||
#define RUBY_RELEASE_MONTH 5
|
#define RUBY_RELEASE_MONTH 5
|
||||||
#define RUBY_RELEASE_DAY 10
|
#define RUBY_RELEASE_DAY 11
|
||||||
|
|
||||||
#ifdef RUBY_EXTERN
|
#ifdef RUBY_EXTERN
|
||||||
RUBY_EXTERN const char ruby_version[];
|
RUBY_EXTERN const char ruby_version[];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user