Skip to content

Commit 11eb8e9

Browse files
committed
Fix segfault on Windows and possible memory leak
1 parent c3b32a4 commit 11eb8e9

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main/c/custom/tiledb_custom.cxx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,8 @@ extern "C" {
844844
for(int i = 0; i<sz; i++){
845845
short_arr[i] = (jshort)arr[i];
846846
}
847-
jenv->ReleaseShortArrayElements(jresult, short_arr, 0);
847+
jenv->SetShortArrayRegion(jresult, 0, sz, short_arr);
848+
delete short_arr;
848849
return jresult;
849850
}
850851

@@ -894,7 +895,8 @@ extern "C" {
894895
for(int i = 0; i<sz; i++){
895896
int_arr[i] = (jint)arr[i];
896897
}
897-
jenv->ReleaseIntArrayElements(jresult, int_arr, 0);
898+
jenv->SetIntArrayRegion(jresult, 0, sz, int_arr);
899+
delete int_arr;
898900
return jresult;
899901
}
900902

@@ -921,7 +923,8 @@ extern "C" {
921923
for(int i = 0; i<sz; i++){
922924
long_arr[i] = (jlong)arr[i];
923925
}
924-
jenv->ReleaseLongArrayElements(jresult, long_arr, 0);
926+
jenv->SetLongArrayRegion(jresult, 0, sz, long_arr);
927+
delete long_arr;
925928
return jresult;
926929
}
927930

@@ -949,7 +952,8 @@ extern "C" {
949952
for(int i = 0; i<sz; i++){
950953
long_arr[i] = (jlong)arr[i];
951954
}
952-
jenv->ReleaseLongArrayElements(jresult, long_arr, 0);
955+
jenv->SetLongArrayRegion(jresult, 0, sz, long_arr);
956+
delete long_arr;
953957
return jresult;
954958
}
955959

0 commit comments

Comments
 (0)