[前][次][番号順一覧][スレッド一覧]

ruby-changes:23258

From: nobu <ko1@a...>
Date: Thu, 12 Apr 2012 15:10:39 +0900 (JST)
Subject: [ruby-changes:23258] nobu:r35309 (trunk): * hash.c: use RHASH_ITER_LEV(), not iter_leve directly.

nobu	2012-04-12 15:10:31 +0900 (Thu, 12 Apr 2012)

  New Revision: 35309

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35309

  Log:
    * hash.c: use RHASH_ITER_LEV(), not iter_leve directly.

  Modified files:
    trunk/hash.c

Index: hash.c
===================================================================
--- hash.c	(revision 35308)
+++ hash.c	(revision 35309)
@@ -171,9 +171,7 @@
 static VALUE
 hash_foreach_ensure(VALUE hash)
 {
-    RHASH(hash)->iter_lev--;
-
-    if (RHASH(hash)->iter_lev == 0) {
+    if (--RHASH_ITER_LEV(hash) == 0) {
 	if (FL_TEST(hash, HASH_DELETED)) {
 	    st_cleanup_safe(RHASH(hash)->ntbl, (st_data_t)Qundef);
 	    FL_UNSET(hash, HASH_DELETED);
@@ -199,7 +197,7 @@
 
     if (!RHASH(hash)->ntbl)
         return;
-    RHASH(hash)->iter_lev++;
+    RHASH_ITER_LEV(hash)++;
     arg.hash = hash;
     arg.func = (rb_foreach_func *)func;
     arg.arg  = farg;
@@ -265,7 +263,7 @@
 static void
 hash_update(VALUE hash, VALUE key)
 {
-    if (RHASH(hash)->iter_lev > 0 && !st_lookup(RHASH(hash)->ntbl, key, 0)) {
+    if (RHASH_ITER_LEV(hash) > 0 && !st_lookup(RHASH(hash)->ntbl, key, 0)) {
 	rb_raise(rb_eRuntimeError, "can't add a new key into hash during iteration");
     }
 }
@@ -466,7 +464,7 @@
 {
     st_table *tbl;
 
-    if (RHASH(hash)->iter_lev > 0) {
+    if (RHASH_ITER_LEV(hash) > 0) {
 	rb_raise(rb_eRuntimeError, "rehash during iteration");
     }
     rb_hash_modify_check(hash);
@@ -778,7 +776,7 @@
 
     if (!RHASH(hash)->ntbl)
         return Qundef;
-    if (RHASH(hash)->iter_lev > 0) {
+    if (RHASH_ITER_LEV(hash) > 0) {
 	if (st_delete_safe(RHASH(hash)->ntbl, &ktmp, &val, (st_data_t)Qundef)) {
 	    FL_SET(hash, HASH_DELETED);
 	    return (VALUE)val;
@@ -868,11 +866,11 @@
     rb_hash_modify_check(hash);
     if (RHASH(hash)->ntbl) {
 	var.key = Qundef;
-	rb_hash_foreach(hash, RHASH(hash)->iter_lev > 0 ? shift_i_safe : shift_i,
+	rb_hash_foreach(hash, RHASH_ITER_LEV(hash) > 0 ? shift_i_safe : shift_i,
 			(VALUE)&var);
 
 	if (var.key != Qundef) {
-	    if (RHASH(hash)->iter_lev > 0) {
+	    if (RHASH_ITER_LEV(hash) > 0) {
 		rb_hash_delete_key(hash, var.key);
 	    }
 	    return rb_assoc_new(var.key, var.val);
@@ -1091,7 +1089,7 @@
     if (!RHASH(hash)->ntbl)
         return hash;
     if (RHASH(hash)->ntbl->num_entries > 0) {
-	if (RHASH(hash)->iter_lev > 0)
+	if (RHASH_ITER_LEV(hash) > 0)
 	    rb_hash_foreach(hash, clear_i, 0);
 	else
 	    st_clear(RHASH(hash)->ntbl);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]