aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/ruby/intern.h1
-rw-r--r--include/ruby/ruby.h7
2 files changed, 7 insertions, 1 deletions
diff --git a/include/ruby/intern.h b/include/ruby/intern.h
index 78ac3f9d00..829d732893 100644
--- a/include/ruby/intern.h
+++ b/include/ruby/intern.h
@@ -326,6 +326,7 @@ VALUE rb_hash_lookup(VALUE, VALUE);
VALUE rb_hash_aset(VALUE, VALUE, VALUE);
VALUE rb_hash_delete_if(VALUE);
VALUE rb_hash_delete(VALUE,VALUE);
+struct st_table *rb_hash_tbl(VALUE);
int rb_path_check(const char*);
int rb_env_path_tainted(void);
/* io.c */
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 2dbf29956e..63cb7b417e 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -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;