* class.c, constant.h, gc.c, method.h, object.c, variable.c,

vm_insnhelper.c: use struct rb_constant_entry_t as entry of
  RCLASS_CONST_TBL.  RCLASS_CONST_TBL has contained VALUE of constant
  directly.  Now instead rb_const_entry_t is contained in
  RCLASS_CONST_TBL,  rb_const_entry_t is managed by malloc, and
  have not only the value itself but also visibility flag.
  This is another preparation for private constant (see
  [ruby-dev:39685][ruby-core:32698]).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29602 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2010-10-26 17:27:32 +00:00
parent e169ea0cac
commit a115768161
8 changed files with 116 additions and 18 deletions

26
constant.h Normal file
View file

@ -0,0 +1,26 @@
/**********************************************************************
constant.h -
$Author$
created at: Sun Nov 15 00:09:33 2009
Copyright (C) 2009 Yusuke Endoh
**********************************************************************/
#ifndef CONSTANT_H
#define CONSTANT_H
typedef enum {
CONST_PUBLIC = 0x00,
CONST_PRIVATE = 0x01,
} rb_const_flag_t;
typedef struct rb_const_entry_struct {
rb_const_flag_t flag;
VALUE value; /* should be mark */
} rb_const_entry_t;
void rb_free_const_table(st_table *tbl);
#endif /* CONSTANT_H */