From f39ab64439a55ec7de9ab3d80b7a4e89901f0952 Mon Sep 17 00:00:00 2001 From: "He-Pin(kerr)" Date: Fri, 5 Apr 2024 23:53:59 +0800 Subject: [PATCH] chore: Avoid copy the whole iterable for mapconcat and statefulMapConcat in javadsl. (#1250) --- .../main/scala/org/apache/pekko/stream/javadsl/Flow.scala | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala index aabb87b47a..fc4ea3e3b3 100755 --- a/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala +++ b/stream/src/main/scala/org/apache/pekko/stream/javadsl/Flow.scala @@ -744,9 +744,7 @@ final class Flow[In, Out, Mat](delegate: scaladsl.Flow[In, Out, Mat]) extends Gr * '''Cancels when''' downstream cancels */ def mapConcat[T](f: function.Function[Out, java.lang.Iterable[T]]): javadsl.Flow[In, T, Mat] = - new Flow(delegate.mapConcat { elem => - Util.immutableSeq(f(elem)) - }) + new Flow(delegate.mapConcat(f(_).asScala)) /** * Transform each stream element with the help of a state. @@ -900,7 +898,7 @@ final class Flow[In, Out, Mat](delegate: scaladsl.Flow[In, Out, Mat]) extends Gr f: function.Creator[function.Function[Out, java.lang.Iterable[T]]]): javadsl.Flow[In, T, Mat] = new Flow(delegate.statefulMapConcat { () => val fun = f.create() - elem => Util.immutableSeq(fun(elem)) + elem => fun(elem).asScala }) /**