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
matz 5b014a7427 * bin/erb (ERB::Main::run): typo fixed. [ruby-core:06337]
* env.h: move struct METHOD and struct BLOCK from eval.c to
  support NodeWrap and ParseTree.

* rubysig.h (CHECK_INTS): prevent signal handler to run during
  critical section.  [ruby-core:04039]

* eval.c (load_wait): need not to call rb_thread_schedule()
  explicitly.  [ruby-core:04039]

* eval.c (rb_thread_schedule): clear rb_thread_critical.
  [ruby-core:04039]

* eval.c (rb_obj_instance_exec): create instance_exec and
  module_exec which pass arguments to the block.

* eval.c (rb_f_funcall): rename fcall to funcall to follow
  tradition.

* st.c (st_free_table): do not call free() but xfree().
  [ruby-core:06205]

* eval.c (splat_value): call rb_Array() to convert svalue to
  values.  [ruby-dev:27397]

* lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may
  not be parsed correctly.  A patch from August Z. Flatby
  (augustzf) in [ruby-Patches-2595].  [ruby-core:06183]

* object.c (rb_Array): Array() to raise error for objects without
  to_ary, nor to_a.

* object.c (nil_to_a): revert NilClass#to_a.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-10-21 09:00:02 +00:00

91 lines
1.6 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
RUBY_EXTERN struct FRAME {
VALUE self;
int argc;
ID callee;
ID this_func;
VALUE this_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
RUBY_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
RUBY_EXTERN int ruby_in_eval;
RUBY_EXTERN VALUE ruby_class;
struct RVarmap {
struct RBasic super;
ID id;
VALUE val;
struct RVarmap *next;
};
RUBY_EXTERN struct RVarmap *ruby_dyna_vars;
struct METHOD {
VALUE klass, rklass;
VALUE recv;
ID id, oid;
int safe_level;
struct RNode *body;
};
struct BLOCK {
struct RNode *var;
struct RNode *body;
VALUE self;
struct FRAME frame;
struct SCOPE *scope;
VALUE klass;
struct RNode *cref;
int iter;
int vmode;
int flags;
int uniq;
struct RVarmap *dyna_vars;
VALUE orig_thread;
VALUE wrapper;
VALUE block_obj;
struct BLOCK *outer;
struct BLOCK *prev;
};
#define BLOCK_D_SCOPE 1
#define BLOCK_LAMBDA 2
#define BLOCK_FROM_METHOD 4
#endif /* ENV_H */