From 50ba0c5c3e2dc94d3fd2a072f179849e1f891ea7 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Tue, 7 Feb 2017 13:42:59 +0700 Subject: [PATCH] Interop/StubGenerator: fix array-typed parameters handling --- .../kotlin/native/interop/gen/jvm/StubGenerator.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt index 0fe4c7b87d2..4e6867d71cb 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/StubGenerator.kt @@ -937,10 +937,15 @@ class StubGenerator( val params = func.parameters.mapIndexed { i, parameter -> val cType = parameter.type.getStringRepresentation() - if (parameter.type.unwrapTypedefs() is RecordType) { - "*($cType*)${paramNames[i]}" - } else { - "($cType)${paramNames[i]}" + val name = paramNames[i] + val unwrappedType = parameter.type.unwrapTypedefs() + when (unwrappedType) { + is RecordType -> "*($cType*)$name" + is ArrayType -> { + val pointerCType = PointerType(unwrappedType.elemType).getStringRepresentation() + "($pointerCType)$name" + } + else -> "($cType)$name" } }.joinToString(", ")