From ce1398882d41c8bc02b001a16c913fcbfb721633 Mon Sep 17 00:00:00 2001 From: Onuralp SEZER Date: Tue, 22 Oct 2024 21:08:39 +0300 Subject: [PATCH] fix(android): Kotlin 2.0 internal error for unsafe coercions Signed-off-by: Onuralp SEZER --- modules/core/misc/java/src/java/core+MatAt.kt | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/modules/core/misc/java/src/java/core+MatAt.kt b/modules/core/misc/java/src/java/core+MatAt.kt index c81e21057f..d50c3fbb0f 100644 --- a/modules/core/misc/java/src/java/core+MatAt.kt +++ b/modules/core/misc/java/src/java/core+MatAt.kt @@ -47,49 +47,50 @@ inline fun Mat.at(idx: IntArray) : Atable = class AtableUByte(val mat: Mat, val indices: IntArray): Atable { + constructor(mat: Mat, row: Int, col: Int) : this(mat, intArrayOf(row, col)) override fun getV(): UByte { - val data = UByteArray(1) + val data = ByteArray(1) mat.get(indices, data) - return data[0] + return data[0].toUByte() } override fun setV(v: UByte) { - val data = ubyteArrayOf(v) + val data = byteArrayOf(v.toByte()) mat.put(indices, data) } override fun getV2c(): Tuple2 { - val data = UByteArray(2) + val data = ByteArray(2) mat.get(indices, data) - return Tuple2(data[0], data[1]) + return Tuple2(data[0].toUByte(), data[1].toUByte()) } override fun setV2c(v: Tuple2) { - val data = ubyteArrayOf(v._0, v._1) + val data = byteArrayOf(v._0.toByte(), v._1.toByte()) mat.put(indices, data) } override fun getV3c(): Tuple3 { - val data = UByteArray(3) + val data = ByteArray(3) mat.get(indices, data) - return Tuple3(data[0], data[1], data[2]) + return Tuple3(data[0].toUByte(), data[1].toUByte(), data[2].toUByte()) } override fun setV3c(v: Tuple3) { - val data = ubyteArrayOf(v._0, v._1, v._2) + val data = byteArrayOf(v._0.toByte(), v._1.toByte(), v._2.toByte()) mat.put(indices, data) } override fun getV4c(): Tuple4 { - val data = UByteArray(4) + val data = ByteArray(4) mat.get(indices, data) - return Tuple4(data[0], data[1], data[2], data[3]) + return Tuple4(data[0].toUByte(), data[1].toUByte(), data[2].toUByte(), data[3].toUByte()) } override fun setV4c(v: Tuple4) { - val data = ubyteArrayOf(v._0, v._1, v._2, v._3) + val data = byteArrayOf(v._0.toByte(), v._1.toByte(), v._2.toByte(), v._3.toByte()) mat.put(indices, data) } } @@ -99,46 +100,47 @@ class AtableUShort(val mat: Mat, val indices: IntArray): Atable { constructor(mat: Mat, row: Int, col: Int) : this(mat, intArrayOf(row, col)) override fun getV(): UShort { - val data = UShortArray(1) + val data = ShortArray(1) mat.get(indices, data) - return data[0] + return data[0].toUShort() } override fun setV(v: UShort) { - val data = ushortArrayOf(v) + val data = shortArrayOf(v.toShort()) mat.put(indices, data) } override fun getV2c(): Tuple2 { - val data = UShortArray(2) + val data = ShortArray(2) mat.get(indices, data) - return Tuple2(data[0], data[1]) + return Tuple2(data[0].toUShort(), data[1].toUShort()) } + override fun setV2c(v: Tuple2) { - val data = ushortArrayOf(v._0, v._1) + val data = shortArrayOf(v._0.toShort(), v._1.toShort()) mat.put(indices, data) } override fun getV3c(): Tuple3 { - val data = UShortArray(3) + val data = ShortArray(3) mat.get(indices, data) - return Tuple3(data[0], data[1], data[2]) + return Tuple3(data[0].toUShort(), data[1].toUShort(), data[2].toUShort()) } override fun setV3c(v: Tuple3) { - val data = ushortArrayOf(v._0, v._1, v._2) + val data = shortArrayOf(v._0.toShort(), v._1.toShort(), v._2.toShort()) mat.put(indices, data) } override fun getV4c(): Tuple4 { - val data = UShortArray(4) + val data = ShortArray(4) mat.get(indices, data) - return Tuple4(data[0], data[1], data[2], data[3]) + return Tuple4(data[0].toUShort(), data[1].toUShort(), data[2].toUShort(), data[3].toUShort()) } override fun setV4c(v: Tuple4) { - val data = ushortArrayOf(v._0, v._1, v._2, v._3) + val data = shortArrayOf(v._0.toShort(), v._1.toShort(), v._2.toShort(), v._3.toShort()) mat.put(indices, data) } }