@@ -276,18 +276,22 @@ cdef dist_array_size(
276276        DTYPE_ui i_start,
277277        DTYPE_ui nb_c_per_l,
278278        DTYPE_ui *  nb_pt_per_c,
279-         DTYPE_ui *  c_i
279+         DTYPE_ui *  c_i,
280+         #  return param
281+         DTYPE_ui *  i_end,
282+         DTYPE_ui *  c_start,
283+         DTYPE_ui *  c_end
280284        ):
281285    """ Give slice to select data
282286    """  
283-     cdef DTYPE_ui i_elt, i_end,  nb_pts
284-     i_end =  i_start +  nb_c_per_l
287+     cdef DTYPE_ui i_elt, nb_pts
288+     i_end[ 0 ]  =  i_start +  nb_c_per_l
285289    nb_pts =  0 
286290
287-     for  i_elt  from  i_start  <=  i_elt  <  i_end: 
288-         nb_pts  +=  nb_pt_per_c[i_elt ]
289-     i_contour  =  c_i[i_start] 
290-     return  i_start, i_end, i_contour, i_contour  +  nb_pts 
291+     c_start[ 0 ]  =  c_i[i_start] 
292+     c_end[ 0 ]  =  c_start[ 0 ]
293+     for  i_elt  from  i_start  <=  i_elt  <  i_end[ 0 ]: 
294+         c_end[ 0 ]  +=  nb_pt_per_c[i_elt] 
291295
292296
293297@ wraparound (False )
@@ -314,20 +318,25 @@ def index_from_nearest_path(
314318    if  nb_contour ==  0 :
315319        return  None 
316320
317-     main_start, main_stop, start, end =  dist_array_size(
318-         l_i[level_index],
321+     main_start =  l_i[level_index]
322+     dist_array_size(
323+         main_start,
319324        nb_contour,
320325        &  nb_pt_per_c[0 ],
321326        &  indices_of_first_pts[0 ],
327+         &  main_stop,
328+         &  start,
329+         &  end
322330        )
323331
324-     nearesti  =   nearest_contour_index(
332+     nearest_contour_index(
325333        &  x_value[0 ],
326334        &  y_value[0 ],
327335        xpt,
328336        ypt,
329337        start,
330338        end,
339+         & nearesti
331340        )
332341
333342    for  i_elt from  main_start <=  i_elt <  main_stop:
@@ -346,6 +355,8 @@ cdef nearest_contour_index(
346355        DTYPE_coord ypt,
347356        DTYPE_ui start,
348357        DTYPE_ui end,
358+         #  return param
359+         DTYPE_ui *  nearesti
349360        ):
350361    """ Give index fron the nearest pts
351362    """  
@@ -358,4 +369,4 @@ cdef nearest_contour_index(
358369        if  dist <  dist_ref:
359370            dist_ref =  dist
360371            i_ref =  i_elt
361-     return  i_ref -  start
372+     nearesti[ 0 ]  =  i_ref -  start
0 commit comments