Я использую kotlin-native и должен передать указатель на структуру функции C. Моя «заглушка Kotlin» имеет забавную подпись SET_SM_REFS_INDEX (index: Int, thisObject: CValuesRef?).
На нативной стороне код хочет содержать указатель на thisObject и хочет обновить поле вструктура, возможно, в другом потоке. Давайте назовем это поле целым числом "thisObject-> myUpdate", например.
Сейчас я пытаюсь создать объект, используя var AA = cValue <..> и пытаюсь вызвать функцию как SET_SM_REFS_INDEX (0, AA). Там нет ошибок компиляции. Тем не менее, я замечаю, что мое поле «AA.update» никогда не обновляется и всегда остается на 0.
Чтение документации https://kotlinlang.org/docs/tutorials/native/mapping-struct-union-types-from-c.html, что-то говорит о возможности использования kotlinx.cinterop.NativePlacement ", но не входит вдеталь.
Я вижу, что cValue, вероятно, не подходит для передачи, так как имеет семантику byValue.
Кто-нибудь знает, как это сделать?