mirror of
https://github.com/ruby/ruby.git
synced 2025-09-21 03:24:00 +02:00
* include/ruby/intern.h: declare rb_hash_tbl.
* include/ruby/ruby.h (RHash): delay st_table allocation. rename tbl field to ntbl to detect direct reference to the st_table as a compile error. (RHASH_TBL): abstract accessor defined. (RHASH_ITER_LEV): ditto. (RHASH_IFNONE): ditto. (RHASH_SIZE): ditto. (RHASH_EMPTY_P): ditto. * hash.c: delay st_table allocation. * gc.c: replace tbl by ntbl. * array.c: replace direct field accessor by abstract field accessor such as RHASH(hash)->tbl to RHASH_TBL(hash). * marshal.c: ditto. * insns.def: ditto. * ext/iconv/iconv.c: ditto. * ext/json/ext/generator/generator.c: ditto. * ext/json/ext/parser/parser.c: ditto. * ext/syck/rubyext.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3d7f8c2320
commit
2a4c4f7b0c
12 changed files with 136 additions and 59 deletions
|
@ -478,10 +478,15 @@ struct RRegexp {
|
|||
|
||||
struct RHash {
|
||||
struct RBasic basic;
|
||||
struct st_table *tbl;
|
||||
struct st_table *ntbl; /* maybe 0 */
|
||||
int iter_lev;
|
||||
VALUE ifnone;
|
||||
};
|
||||
#define RHASH_TBL(h) rb_hash_tbl(h)
|
||||
#define RHASH_ITER_LEV(h) RHASH(h)->iter_lev
|
||||
#define RHASH_IFNONE(h) RHASH(h)->ifnone
|
||||
#define RHASH_SIZE(h) (RHASH(h)->ntbl ? RHASH(h)->ntbl->num_entries : 0)
|
||||
#define RHASH_EMPTY_P(h) (RHASH_SIZE(h) == 0)
|
||||
|
||||
struct RFile {
|
||||
struct RBasic basic;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue