Handle lambda argument of staticCFunction

This commit is contained in:
Svyatoslav Scherbina
2017-04-21 12:51:51 +03:00
committed by SvyatoslavScherbina
parent c6ad4c3307
commit ea2d7cbf01
3 changed files with 43 additions and 13 deletions
+6 -8
View File
@@ -11,7 +11,12 @@ fun main(args: Array<String>) {
values[3] = 13
values[4] = 8
cstdlib.qsort(values, count.toLong(), IntVar.size, staticCFunction(::comparator))
cstdlib.qsort(values, count.toLong(), IntVar.size, staticCFunction { a, b ->
val aValue = a!!.reinterpret<IntVar>()[0]
val bValue = b!!.reinterpret<IntVar>()[0]
(aValue - bValue)
})
for (i in 0 .. count - 1) {
print(values[i])
@@ -20,10 +25,3 @@ fun main(args: Array<String>) {
println()
}
}
private fun comparator(a: COpaquePointer?, b: COpaquePointer?): Int {
val aValue = a!!.reinterpret<IntVar>()[0]
val bValue = b!!.reinterpret<IntVar>()[0]
return (aValue - bValue)
}