katokay
06/20/2023, 6:05 PMactual fun put(dbi: Dbi, key: ByteArray, data: ByteArray, vararg options: PutOption) {
memScoped {
key.usePinned { keyP ->
val mdbKey = cValue<MDB_val>{
mv_data = keyP.addressOf(0)
mv_size = key.size.convert()
}
data.usePinned { dataP ->
val mdbData = cValue<MDB_val>{
mv_data = dataP.addressOf(0)
mv_size = data.size.convert()
}
println("Putting value")
check(mdb_put(ptr, dbi.dbi, mdbKey.ptr, mdbData.ptr, options.asIterable().toFlags()))
println("Put value")
}
}
}
russhwolf
06/20/2023, 6:22 PMkatokay
06/20/2023, 8:46 PMrusshwolf
06/20/2023, 9:40 PMdbi
parameter in your snippet. If that came from a memscope that was already closed, it's probably referencing memory that isn't valid anymore.katokay
06/21/2023, 12:54 PM