From d26eca7073371906c7cf320ce2712075c35246f0 Mon Sep 17 00:00:00 2001 From: Wuwei Lin Date: Tue, 22 May 2018 15:51:08 +0800 Subject: [PATCH] Unref input features in transformer::apply --- src/shogun/preprocessor/DensePreprocessor.cpp | 1 + src/shogun/preprocessor/SparsePreprocessor.h | 1 + src/shogun/preprocessor/StringPreprocessor.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/shogun/preprocessor/DensePreprocessor.cpp b/src/shogun/preprocessor/DensePreprocessor.cpp index eb235eee4fe..a9ef1c43534 100644 --- a/src/shogun/preprocessor/DensePreprocessor.cpp +++ b/src/shogun/preprocessor/DensePreprocessor.cpp @@ -97,6 +97,7 @@ CFeatures* CDensePreprocessor::apply(CFeatures* features, bool inplace) matrix = matrix.clone(); auto feat_matrix = apply_to_matrix(matrix); auto preprocessed = new CDenseFeatures(feat_matrix); + SG_UNREF(features); SG_REF(preprocessed); return preprocessed; } diff --git a/src/shogun/preprocessor/SparsePreprocessor.h b/src/shogun/preprocessor/SparsePreprocessor.h index 04fd253bc47..1698a4ff6bd 100644 --- a/src/shogun/preprocessor/SparsePreprocessor.h +++ b/src/shogun/preprocessor/SparsePreprocessor.h @@ -93,6 +93,7 @@ CFeatures* CSparsePreprocessor::apply(CFeatures* features, bool inplace) apply_to_sparse_matrix(feature_matrix); auto processed = new CSparseFeatures(feature_matrix); + SG_UNREF(features); SG_REF(processed); return processed; diff --git a/src/shogun/preprocessor/StringPreprocessor.cpp b/src/shogun/preprocessor/StringPreprocessor.cpp index 081ae9b0e60..b770adb6dbd 100644 --- a/src/shogun/preprocessor/StringPreprocessor.cpp +++ b/src/shogun/preprocessor/StringPreprocessor.cpp @@ -106,6 +106,7 @@ namespace shogun auto processed = new CStringFeatures( string_list, string_features->get_alphabet()); + SG_UNREF(features); SG_REF(processed); return processed;