translator: add custom type size dependenton on architecture

This commit is contained in:
Alexey Stepanov
2016-08-11 18:56:13 +03:00
parent 23787ba51b
commit 1ba2ba35e2
4 changed files with 10 additions and 6 deletions
+4 -3
View File
@@ -1,3 +1,5 @@
external fun kotlinclib_boolean_size(): Int
class BooleanArray(var size: Int) { class BooleanArray(var size: Int) {
val data: Int val data: Int
@@ -5,7 +7,7 @@ class BooleanArray(var size: Int) {
//size: Int //size: Int
init { init {
this.data = malloc_array(this.size) this.data = malloc_array(kotlinclib_boolean_size() * this.size)
} }
/** Returns the array element at the given [index]. This method can be called using the index operator. */ /** Returns the array element at the given [index]. This method can be called using the index operator. */
@@ -19,8 +21,7 @@ class BooleanArray(var size: Int) {
operator fun set(index: Int, value: Boolean) { operator fun set(index: Int, value: Boolean) {
if (value == true) { if (value == true) {
kotlinclib_set_byte(this.data, index, 1.toByte()) kotlinclib_set_byte(this.data, index, 1.toByte())
} } else {
else{
kotlinclib_set_byte(this.data, index, 0.toByte()) kotlinclib_set_byte(this.data, index, 0.toByte())
} }
} }
+2 -1
View File
@@ -1,6 +1,7 @@
external fun malloc_array(size: Int): Int external fun malloc_array(size: Int): Int
external fun kotlinclib_get_byte(src: Int, index: Int): Byte external fun kotlinclib_get_byte(src: Int, index: Int): Byte
external fun kotlinclib_set_byte(src: Int, index: Int, value: Byte) external fun kotlinclib_set_byte(src: Int, index: Int, value: Byte)
external fun kotlinclib_byte_size(): Int
class ByteArray(var size: Int) { class ByteArray(var size: Int) {
@@ -10,7 +11,7 @@ class ByteArray(var size: Int) {
//size: Int //size: Int
init { init {
this.data = malloc_array(this.size) this.data = malloc_array(kotlinclib_byte_size() * this.size)
} }
/** Returns the array element at the given [index]. This method can be called using the index operator. */ /** Returns the array element at the given [index]. This method can be called using the index operator. */
+2 -1
View File
@@ -1,5 +1,6 @@
external fun kotlinclib_get_int(src: Int, index: Int): Int external fun kotlinclib_get_int(src: Int, index: Int): Int
external fun kotlinclib_set_int(src: Int, index: Int, value: Int) external fun kotlinclib_set_int(src: Int, index: Int, value: Int)
external fun kotlinclib_int_size(): Int
class IntArray(var size: Int) { class IntArray(var size: Int) {
@@ -9,7 +10,7 @@ class IntArray(var size: Int) {
//size: Int //size: Int
init { init {
this.data = malloc_array(4 * this.size) this.data = malloc_array(kotlinclib_int_size() * this.size)
} }
/** Returns the array element at the given [index]. This method can be called using the index operator. */ /** Returns the array element at the given [index]. This method can be called using the index operator. */
+2 -1
View File
@@ -1,5 +1,6 @@
external fun kotlinclib_get_short(src: Int, index: Int): Short external fun kotlinclib_get_short(src: Int, index: Int): Short
external fun kotlinclib_set_short(src: Int, index: Int, value: Short) external fun kotlinclib_set_short(src: Int, index: Int, value: Short)
external fun kotlinclib_short_size(): Int
class ShortArray(var size: Int) { class ShortArray(var size: Int) {
@@ -9,7 +10,7 @@ class ShortArray(var size: Int) {
//size: Int //size: Int
init { init {
this.data = malloc_array(this.size) this.data = malloc_array(kotlinclib_short_size() * this.size)
} }
/** Returns the array element at the given [index]. This method can be called using the index operator. */ /** Returns the array element at the given [index]. This method can be called using the index operator. */