ffi: shorthand for some java types

This commit is contained in:
Alex Zenla 2023-09-07 01:07:43 -07:00
parent 953679b859
commit 540826fb6e
Signed by: alex
GPG Key ID: C0780728420EBFE5
2 changed files with 8 additions and 2 deletions

View File

@ -2,7 +2,7 @@ func java_system_err()
native java "java.lang.System:static-getter:err:java.io.PrintStream"
func print_stream_println(stream, line)
native java "java.io.PrintStream:virtual:println:void:java.lang.String"
native java "java.io.PrintStream:virtual:println:void:String"
export func main() {
let error = java_system_err()

View File

@ -13,7 +13,7 @@ class JavaNativeProvider : NativeFunctionProvider {
val functionDefinition = JavaFunctionDefinition.parse(definition)
val javaClass = lookupClass(functionDefinition.type)
val returnTypeClass = lookupClass(functionDefinition.returnType)
val parameterClasses = functionDefinition.parameters.map { lookup.findClass(it) }
val parameterClasses = functionDefinition.parameters.map { lookupClass(it) }
val handle = mapKindToHandle(
functionDefinition.kind,
functionDefinition.symbol,
@ -26,6 +26,12 @@ class JavaNativeProvider : NativeFunctionProvider {
private fun lookupClass(name: String): Class<*> = when (name) {
"void" -> Void.TYPE
"String" -> String::class.java
"byte" -> Byte::class.java
"char" -> Char::class.java
"short" -> Short::class.java
"int" -> Int::class.java
"long" -> Long::class.java
else -> lookup.findClass(name)
}