Dev: fix 64-bit support
This commit is contained in:
parent
ae7ca8ab2e
commit
f80b875cc0
|
@ -176,13 +176,13 @@ public struct JavaCoderConfig {
|
||||||
|
|
||||||
RegisterType(type: Data.self, javaClassname: ByteBufferClassname, encodableClosure: {
|
RegisterType(type: Data.self, javaClassname: ByteBufferClassname, encodableClosure: {
|
||||||
let valueData = $0 as! Data
|
let valueData = $0 as! Data
|
||||||
let byteArray = JNI.api.NewByteArray(JNI.env, valueData.count)
|
let byteArray = JNI.api.NewByteArray(JNI.env, Int32(valueData.count))
|
||||||
if let throwable = JNI.ExceptionCheck() {
|
if let throwable = JNI.ExceptionCheck() {
|
||||||
throw EncodingError.invalidValue($0, EncodingError.Context(codingPath: [],
|
throw EncodingError.invalidValue($0, EncodingError.Context(codingPath: [],
|
||||||
debugDescription: "Can't create NewByteArray \(valueData.count)"))
|
debugDescription: "Can't create NewByteArray \(valueData.count)"))
|
||||||
}
|
}
|
||||||
valueData.withUnsafeBytes({ (pointer: UnsafePointer<Int8>) -> Void in
|
valueData.withUnsafeBytes({ (pointer: UnsafePointer<Int8>) -> Void in
|
||||||
JNI.api.SetByteArrayRegion(JNI.env, byteArray, 0, valueData.count, pointer)
|
JNI.api.SetByteArrayRegion(JNI.env, byteArray, 0, Int32(valueData.count), pointer)
|
||||||
})
|
})
|
||||||
if let throwable = JNI.ExceptionCheck() {
|
if let throwable = JNI.ExceptionCheck() {
|
||||||
throw EncodingError.invalidValue($0, EncodingError.Context(codingPath: [],
|
throw EncodingError.invalidValue($0, EncodingError.Context(codingPath: [],
|
||||||
|
@ -202,7 +202,7 @@ public struct JavaCoderConfig {
|
||||||
defer {
|
defer {
|
||||||
JNI.api.ReleaseByteArrayElements(JNI.env, byteArray, pointer, 0)
|
JNI.api.ReleaseByteArrayElements(JNI.env, byteArray, pointer, 0)
|
||||||
}
|
}
|
||||||
return Data(bytes: pointer, count: length)
|
return Data(bytes: pointer, count: Int(length))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue