Unverified Commit 1e1affd5 authored by Nikolay Igotti's avatar Nikolay Igotti Committed by GitHub

Switch Skiko to 1.8 bytecode (#467)

parent 248c4970
......@@ -207,7 +207,7 @@ val Project.supportAndroid: Boolean
kotlin {
jvm("awt") {
compilations.all {
kotlinOptions.jvmTarget = "11"
kotlinOptions.jvmTarget = "1.8"
}
generateVersion(hostOs, hostArch)
}
......@@ -215,7 +215,7 @@ kotlin {
if (supportAndroid) {
jvm("android") {
compilations.all {
kotlinOptions.jvmTarget = "11"
kotlinOptions.jvmTarget = "1.8"
}
// We need an additional attribute to distinguish between JVM variants.
attributes {
......@@ -487,10 +487,6 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) {
}
}
tasks.withType(JavaCompile::class.java).configureEach {
this.getOptions().compilerArgs.addAll(listOf("-source", "11", "-target", "11"))
}
fun skiaHeadersDirs(skiaDir: File): List<File> =
listOf(
skiaDir,
......
package org.jetbrains.skia.impl
import java.lang.ref.Cleaner
actual abstract class Managed actual constructor(ptr: Long, finalizer: Long, managed: Boolean)
: Native(ptr), AutoCloseable {
private var cleanable: Cleaner.Cleanable? = null
actual override fun close() {
if (0L == _ptr)
throw RuntimeException("Object already closed: $javaClass, _ptr=$_ptr")
else if (null == cleanable)
throw RuntimeException("Object is not managed in JVM, can't close(): $javaClass, _ptr=$_ptr")
else {
cleanable!!.clean()
cleanable = null
_ptr = 0
}
}
actual open val isClosed: Boolean
get() = _ptr == 0L
class CleanerThunk(var className: String, var ptr: Long, var finalizerPtr: Long) : Runnable {
override fun run() {
Log.trace { "Cleaning $className ${java.lang.Long.toString(ptr, 16)}" }
Stats.onDeallocated(className)
Stats.onNativeCall()
_nInvokeFinalizer(finalizerPtr, ptr)
}
}
companion object {
var CLEANER = Cleaner.create()
@JvmStatic external fun _nInvokeFinalizer(finalizer: Long, ptr: Long)
}
init {
if (managed) {
assert(ptr != 0L) { "Managed ptr is 0" }
assert(finalizer != 0L) { "Managed finalizer is 0" }
val className = javaClass.simpleName
Stats.onAllocated(className)
cleanable = CLEANER.register(this, CleanerThunk(className, ptr, finalizer))
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment