Skip to content

Commit f6745e8

Browse files
authored
Merge pull request #4 from jmarkstar/master
Validated array's length
2 parents b898d1e + 281e0f7 commit f6745e8

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

Sources/JNIType.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class JNIType {
3535
guard let from: jobject = from else { return nil }
3636
defer { if consume { JNI.DeleteLocalRef( from ) } }
3737
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
38+
if length == 0 { return [] }
3839
var value = [jboolean]( repeating: jboolean(), count: Int(length) )
3940
withUnsafeMutablePointer(to: &value[0]) {
4041
valuePtr in
@@ -78,6 +79,7 @@ public class JNIType {
7879
guard let from: jobject = from else { return nil }
7980
defer { if consume { JNI.DeleteLocalRef( from ) } }
8081
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
82+
if length == 0 { return [] }
8183
var value = [Int8]( repeating: Int8(), count: Int(length) )
8284
withUnsafeMutablePointer(to: &value[0]) {
8385
valuePtr in
@@ -121,6 +123,7 @@ public class JNIType {
121123
guard let from: jobject = from else { return nil }
122124
defer { if consume { JNI.DeleteLocalRef( from ) } }
123125
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
126+
if length == 0 { return [] }
124127
var value = [Int16]( repeating: Int16(), count: Int(length) )
125128
withUnsafeMutablePointer(to: &value[0]) {
126129
valuePtr in
@@ -164,6 +167,7 @@ public class JNIType {
164167
guard let from: jobject = from else { return nil }
165168
defer { if consume { JNI.DeleteLocalRef( from ) } }
166169
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
170+
if length == 0 { return [] }
167171
var value = [UInt16]( repeating: UInt16(), count: Int(length) )
168172
withUnsafeMutablePointer(to: &value[0]) {
169173
valuePtr in
@@ -209,6 +213,7 @@ public class JNIType {
209213
guard let from: jobject = from else { return nil }
210214
defer { if consume { JNI.DeleteLocalRef( from ) } }
211215
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
216+
if length == 0 { return [] }
212217
var value = [Int32]( repeating: Int32(), count: Int(length) )
213218
value.withUnsafeMutableBufferPointer {
214219
valuePtr in
@@ -255,6 +260,7 @@ public class JNIType {
255260
guard let from: jobject = from else { return nil }
256261
defer { if consume { JNI.DeleteLocalRef( from ) } }
257262
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
263+
if length == 0 { return [] }
258264
var value = [jint]( repeating: jint(), count: Int(length) )
259265
withUnsafeMutablePointer(to: &value[0]) {
260266
valuePtr in
@@ -298,6 +304,7 @@ public class JNIType {
298304
guard let from: jobject = from else { return nil }
299305
defer { if consume { JNI.DeleteLocalRef( from ) } }
300306
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
307+
if length == 0 { return [] }
301308
var value = [Int64]( repeating: Int64(), count: Int(length) )
302309
withUnsafeMutablePointer(to: &value[0]) {
303310
valuePtr in
@@ -341,6 +348,7 @@ public class JNIType {
341348
guard let from: jobject = from else { return nil }
342349
defer { if consume { JNI.DeleteLocalRef( from ) } }
343350
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
351+
if length == 0 { return [] }
344352
var value = [Float]( repeating: Float(), count: Int(length) )
345353
withUnsafeMutablePointer(to: &value[0]) {
346354
valuePtr in
@@ -384,6 +392,7 @@ public class JNIType {
384392
guard let from: jobject = from else { return nil }
385393
defer { if consume { JNI.DeleteLocalRef( from ) } }
386394
let length: jsize = JNI.api.GetArrayLength( JNI.env, from )
395+
if length == 0 { return [] }
387396
var value = [Double]( repeating: Double(), count: Int(length) )
388397
withUnsafeMutablePointer(to: &value[0]) {
389398
valuePtr in

0 commit comments

Comments
 (0)