Skip to content

Commit a631a41

Browse files
committed
Update for latest SWIG and regenerate
1 parent 6260c25 commit a631a41

File tree

6 files changed

+425
-849
lines changed

6 files changed

+425
-849
lines changed

src/flc_algorithm.i

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,21 +154,21 @@ static index_int binary_search_impl(const T *data, size_t size, T value, Compare
154154
}
155155

156156
template<class T, class Compare>
157-
static void equal_range_impl(const T *data, size_t size, T value, index_int *first_index, index_int *last_index, Compare cmp) {
157+
static void equal_range_impl(const T *data, size_t size, T value, index_int &first_index, index_int &last_index, Compare cmp) {
158158
const T *end = data + size;
159159
auto range_pair = std::equal_range(data, end, value, cmp);
160160
// Index of the min/max items *IN FORTAN INDEXING*
161-
*first_index = range_pair.first - data + 1;
162-
*last_index = range_pair.second - data;
161+
first_index = range_pair.first - data + 1;
162+
last_index = range_pair.second - data;
163163
}
164164

165165
template<class T, class Compare>
166-
static void minmax_element_impl(const T *data, size_t size, index_int *min_index, index_int *max_index, Compare cmp) {
166+
static void minmax_element_impl(const T *data, size_t size, index_int &min_index, index_int &max_index, Compare cmp) {
167167
const T *end = data + size;
168168
auto mm_pair = std::minmax_element(data, end, cmp);
169169
// Index of the min/max items *IN FORTAN INDEXING*
170-
*min_index = mm_pair.first - data + 1;
171-
*max_index = mm_pair.second - data + 1;
170+
min_index = mm_pair.first - data + 1;
171+
max_index = mm_pair.second - data + 1;
172172
}
173173
%}
174174

@@ -178,11 +178,11 @@ static void minmax_element_impl(const T *data, size_t size, index_int *min_index
178178

179179
%flc_cmp_algorithm(void, equal_range, %arg(const T *DATA, size_t DATASIZE,
180180
T value,
181-
index_int *first_index, index_int *last_index),
181+
index_int &first_index, index_int &last_index),
182182
%arg(DATA, DATASIZE, value, first_index, last_index))
183183

184184
%flc_cmp_algorithm(void, minmax_element, %arg(const T *DATA, size_t DATASIZE,
185-
index_int *min_index, index_int *max_index),
185+
index_int &min_index, index_int &max_index),
186186
%arg(DATA, DATASIZE, min_index, max_index))
187187

188188
/******************************

src/generated/flc.f90

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ module flc
2828

2929
! WRAPPER DECLARATIONS
3030
interface
31+
subroutine SWIG_free(cptr) &
32+
bind(C, name="free")
33+
use, intrinsic :: ISO_C_BINDING
34+
type(C_PTR), value :: cptr
35+
end subroutine
3136
function swigc_flibcpp_version_get() &
3237
bind(C, name="_wrap_flibcpp_version_get") &
3338
result(fresult)
@@ -36,27 +41,22 @@ function swigc_flibcpp_version_get() &
3641
type(SwigArrayWrapper) :: fresult
3742
end function
3843

39-
subroutine SWIG_free(cptr) &
40-
bind(C, name="free")
41-
use, intrinsic :: ISO_C_BINDING
42-
type(C_PTR), value :: cptr
43-
end subroutine
4444
end interface
4545

4646

4747
contains
4848
! MODULE SUBPROGRAMS
4949

50-
subroutine SWIG_chararray_to_string(wrap, string)
50+
subroutine SWIGTM_fout_const_SS_char_Sm_ (imout, fout)
5151
use, intrinsic :: ISO_C_BINDING
52-
type(SwigArrayWrapper), intent(IN) :: wrap
53-
character(kind=C_CHAR, len=:), allocatable, intent(OUT) :: string
52+
type(SwigArrayWrapper), intent(in) :: imout
53+
character(kind=C_CHAR, len=:), allocatable, intent(out) :: fout
5454
character(kind=C_CHAR), dimension(:), pointer :: chars
5555
integer(kind=C_SIZE_T) :: i
56-
call c_f_pointer(wrap%data, chars, [wrap%size])
57-
allocate(character(kind=C_CHAR, len=wrap%size) :: string)
58-
do i=1, wrap%size
59-
string(i:i) = chars(i)
56+
call c_f_pointer(imout%data, chars, [imout%size])
57+
allocate(character(kind=C_CHAR, len=imout%size) :: fout)
58+
do i=1, imout%size
59+
fout(i:i) = chars(i)
6060
end do
6161
end subroutine
6262

@@ -67,7 +67,7 @@ function get_flibcpp_version() &
6767
type(SwigArrayWrapper) :: fresult
6868

6969
fresult = swigc_flibcpp_version_get()
70-
call SWIG_chararray_to_string(fresult, swig_result)
70+
call SWIGTM_fout_const_SS_char_Sm_ (fresult, swig_result)
7171
if (.false.) call SWIG_free(fresult%data)
7272
end function
7373

0 commit comments

Comments
 (0)