From 2445646383faa91dded81c273c05ead2fd71e433 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 26 Mar 2016 09:36:21 +0000 Subject: Ensure single iteration over results Iterable in concat --- src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java | 2 ++ src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java index 95b886f..65cd3b0 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/ReadResult.java @@ -12,11 +12,13 @@ import static org.zwobble.mammoth.internal.util.MammothIterables.lazyConcat; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFlatMap; import static org.zwobble.mammoth.internal.util.MammothLists.eagerFlatMap; import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.MammothLists.toList; public class ReadResult { public static final ReadResult EMPTY_SUCCESS = success(list()); public static ReadResult concat(Iterable results) { + results = toList(results); return new ReadResult( eagerFlatMap(results, result -> result.elements), eagerFlatMap(results, result -> result.extra), diff --git a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java index 35c195d..b4c3791 100644 --- a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java @@ -14,9 +14,11 @@ import static org.zwobble.mammoth.internal.util.MammothIterables.lazyConcat; import static org.zwobble.mammoth.internal.util.MammothIterables.lazyFlatMap; import static org.zwobble.mammoth.internal.util.MammothLists.eagerMap; import static org.zwobble.mammoth.internal.util.MammothLists.list; +import static org.zwobble.mammoth.internal.util.MammothLists.toList; public class InternalResult { public static InternalResult> concat(Iterable> results) { + results = toList(results); return new InternalResult<>( eagerMap(results, result -> result.value), lazyFlatMap(results, result -> result.warnings)); -- cgit v1.2.3