summary refs log tree commit diff stats
path: root/src/main/kotlin/space/autistic/radio/reflection
diff options
context:
space:
mode:
authorSoniEx2 <endermoneymod@gmail.com>2025-03-04 22:45:19 -0300
committerSoniEx2 <endermoneymod@gmail.com>2025-03-04 22:45:19 -0300
commit79ff3692b9462fc79d93bd74213ce6904340fc13 (patch)
tree22055c038783b87cceffe3d2220cc2b568a4493d /src/main/kotlin/space/autistic/radio/reflection
First public commit
Diffstat (limited to 'src/main/kotlin/space/autistic/radio/reflection')
-rw-r--r--src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt b/src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt
new file mode 100644
index 0000000..78961da
--- /dev/null
+++ b/src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt
@@ -0,0 +1,14 @@
+package space.autistic.radio.reflection
+
+import com.dylibso.chicory.runtime.ByteBufferMemory
+import java.lang.invoke.MethodHandles
+import java.nio.ByteBuffer
+
+fun ByteBufferMemory.getBuffer(): ByteBuffer {
+    return MemoryReflection.buffer.get(this) as ByteBuffer
+}
+
+object MemoryReflection {
+    val buffer = MethodHandles.privateLookupIn(ByteBufferMemory::class.java, MethodHandles.lookup())
+        .findVarHandle(ByteBufferMemory::class.java, "buffer", ByteBuffer::class.java)
+}
\ No newline at end of file