summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 2f5a46ba..314fde4f 100644
--- a/lib.c
+++ b/lib.c
@@ -1545,6 +1545,12 @@ void seq_build_init(seq_build_t *bu, val likeobj)
bu->ops = &sb_buf_ops;
break;
case COBJ:
+ if (likeobj->co.cls == seq_iter_cls)
+ {
+ struct seq_iter *si = coerce(struct seq_iter *, likeobj->co.handle);
+ seq_build_init(bu, si->inf.obj);
+ break;
+ }
if (obj_struct_p(likeobj)) {
val from_list_meth = get_special_slot(likeobj, from_list_m);