@@ -248,7 +248,7 @@ function linear_train(
248
248
# `_labels` being -1's, which seems better.
249
249
_labels = Vector {Cint} (undef, m. nr_class)
250
250
_labels .= - 1 # initialize to some invalid state
251
- ccall ((:get_labels , liblinear), Cvoid, (Ptr{Model},Ptr{Vector{Cint}}), ptr, pointer ( _labels) )
251
+ ccall ((:get_labels , liblinear), Cvoid, (Ptr{Model},Ptr{Vector{Cint}}), ptr, _labels)
252
252
rho = solver_type == ONECLASS_SVM ? m. rho : 0.0
253
253
model = LinearModel (solver_type, Int (m. nr_class), Int (m. nr_feature),
254
254
w, _labels, reverse_labels, m. bias, rho)
@@ -292,13 +292,13 @@ function linear_predict(
292
292
w_number = Int (model. nr_class == 2 && model. solver_type != MCSVM_CS ?
293
293
1 : model. nr_class)
294
294
decvalues = Array {Float64} (undef, w_number, ninstances)
295
- for i = 1 : ninstances
295
+ GC . @preserve decvalues for i = 1 : ninstances
296
296
if probability_estimates
297
297
output = ccall ((:predict_probability , liblinear), Float64, (Ptr{Cvoid}, Ptr{FeatureNode}, Ptr{Float64}),
298
- pointer (m) , nodeptrs[i], pointer (decvalues, w_number* (i- 1 )+ 1 ))
298
+ m , nodeptrs[i], pointer (decvalues, w_number* (i- 1 )+ 1 ))
299
299
else
300
300
output = ccall ((:predict_values , liblinear), Float64, (Ptr{Cvoid}, Ptr{FeatureNode}, Ptr{Float64}),
301
- pointer (m) , nodeptrs[i], pointer (decvalues, w_number* (i- 1 )+ 1 ))
301
+ m , nodeptrs[i], pointer (decvalues, w_number* (i- 1 )+ 1 ))
302
302
end
303
303
output_int = round (Int,output)
304
304
0 commit comments