1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/env.h
knu da9117c9de * env.h (SCOPE_CLONE): Introduce a new scope flag to prevent a
local_tbl region from getting freed many times; submitted by
  Chikanaga Tomoyuki <chikanag AT nippon-control-system.co.jp> in
  [ruby-dev:30460].

* eval.c (proc_invoke): Ditto.

* gc.c (obj_free): Ditto.

* parse.y (top_local_setup_gen): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@11965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-03-03 07:30:46 +00:00

60 lines
1.1 KiB
C

/**********************************************************************
env.h -
$Author$
$Date$
created at: Mon Jul 11 11:53:03 JST 1994
Copyright (C) 1993-2003 Yukihiro Matsumoto
**********************************************************************/
#ifndef ENV_H
#define ENV_H
extern struct FRAME {
VALUE self;
int argc;
ID last_func;
ID orig_func;
VALUE last_class;
struct FRAME *prev;
struct FRAME *tmp;
struct RNode *node;
int iter;
int flags;
unsigned long uniq;
} *ruby_frame;
void rb_gc_mark_frame _((struct FRAME *));
#define FRAME_DMETH 1
#define FRAME_FUNC 2
extern struct SCOPE {
struct RBasic super;
ID *local_tbl;
VALUE *local_vars;
int flags;
} *ruby_scope;
#define SCOPE_ALLOCA 0
#define SCOPE_MALLOC 1
#define SCOPE_NOSTACK 2
#define SCOPE_DONT_RECYCLE 4
#define SCOPE_CLONE 8
extern int ruby_in_eval;
extern VALUE ruby_class;
struct RVarmap {
struct RBasic super;
ID id;
VALUE val;
struct RVarmap *next;
};
extern struct RVarmap *ruby_dyna_vars;
#endif /* ENV_H */