From 568f69f31bdc48f3dc6a24999955669efef15b1d Mon Sep 17 00:00:00 2001 From: sksamuel Date: Mon, 15 Apr 2024 08:21:42 -0500 Subject: [PATCH] Optimized creation of GenericData.Array --- .../com/sksamuel/centurion/avro/encoders/collections.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt b/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt index 94d1f46..b4510b1 100644 --- a/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt +++ b/centurion-avro/src/main/kotlin/com/sksamuel/centurion/avro/encoders/collections.kt @@ -11,7 +11,7 @@ class GenericArrayArrayEncoder(private val encoder: Encoder) : Encoder): Any { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - return GenericData.Array(elements.size, schema).also { it.addAll(elements as Collection) } + return GenericData.Array(schema, elements) } } @@ -22,7 +22,7 @@ class GenericArrayListEncoder(private val encoder: Encoder) : Encoder): Any { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - return GenericData.Array(elements.size, schema).also { it.addAll(elements as Collection) } + return GenericData.Array(schema, elements) } } @@ -33,9 +33,7 @@ class GenericArraySetEncoder(private val encoder: Encoder) : Encoder): GenericArray { require(schema.type == Schema.Type.ARRAY) val elements = value.map { encoder.encode(schema.elementType, it) } - val array = GenericData.get().newArray(null, elements.size, schema) as GenericArray - array.addAll(elements) - return array + return GenericData.Array(schema, elements) } }