diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-20 15:44:56 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-20 15:44:56 +0900 |
| commit | 62dae09bf6e2ac965ec7384100f56f40737cbd6f (patch) | |
| tree | e2405226c0ba6aed5d11781ec97e4524548e5f96 /src | |
| parent | edd9fc6e75e26e154ab6af5c504f3bd38ecbfdd3 (diff) | |
| download | mruby-62dae09bf6e2ac965ec7384100f56f40737cbd6f.tar.gz mruby-62dae09bf6e2ac965ec7384100f56f40737cbd6f.zip | |
Allow `mrb_objspace_each_objects()` to break iteration; ref #3359
Diffstat (limited to 'src')
| -rw-r--r-- | src/gc.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -1498,7 +1498,8 @@ gc_each_objects(mrb_state *mrb, mrb_gc *gc, mrb_each_object_callback *callback, p = objects(page); pend = p + MRB_HEAP_PAGE_SIZE; for (;p < pend; p++) { - (*callback)(mrb, &p->as.basic, data); + if ((*callback)(mrb, &p->as.basic, data) == MRB_EACH_OBJ_BREAK) + break; } page = page->next; |
