зеркало из https://github.com/github/ruby.git
* hash.c (st_foreach_safe): since table is not for VALUE, Qundef is
not special value, so use 0 instead. therefore this function can be applied to only st_table which 0 is invalid as keys, e.g., IDs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
4fa3236600
Коммит
d0380e2e56
|
@ -1,4 +1,8 @@
|
|||
Sat Mar 31 07:44:30 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Sat Mar 31 07:47:31 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* hash.c (st_foreach_safe): since table is not for VALUE, Qundef is
|
||||
not special value, so use 0 instead. therefore this function can be
|
||||
applied to only st_table which 0 is invalid as keys, e.g., IDs.
|
||||
|
||||
* hash.c: Qundef cannot be passed from st_foreach_check().
|
||||
|
||||
|
|
2
hash.c
2
hash.c
|
@ -131,7 +131,7 @@ st_foreach_safe(st_table *table, int (*func)(ANYARGS), st_data_t a)
|
|||
arg.tbl = table;
|
||||
arg.func = (st_foreach_func *)func;
|
||||
arg.arg = a;
|
||||
if (st_foreach_check(table, foreach_safe_i, (st_data_t)&arg, (st_data_t)Qundef)) {
|
||||
if (st_foreach_check(table, foreach_safe_i, (st_data_t)&arg, 0)) {
|
||||
rb_raise(rb_eRuntimeError, "hash modified during iteration");
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче