From 24dee16b12ca4fa0def502af2590cd2d35178505 Mon Sep 17 00:00:00 2001 From: Roman Donchenko Date: Wed, 14 Aug 2013 12:41:58 +0400 Subject: [PATCH] Added to CV_INIT_ALGORITHM a Ptr creation function, for convenience. Also changed the static functions to inline, to stop GCC complaining about unused functions. --- modules/contrib/src/facerec.cpp | 2 +- modules/core/include/opencv2/core/private.hpp | 9 +++++++-- modules/ml/src/ml_init.cpp | 2 +- modules/nonfree/src/nonfree_init.cpp | 2 +- modules/softcascade/src/softcascade_init.cpp | 4 ++-- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/contrib/src/facerec.cpp b/modules/contrib/src/facerec.cpp index c7e4322..1bea74e 100644 --- a/modules/contrib/src/facerec.cpp +++ b/modules/contrib/src/facerec.cpp @@ -894,7 +894,7 @@ CV_INIT_ALGORITHM(LBPH, "FaceRecognizer.LBPH", bool initModule_contrib() { - Ptr efaces = createEigenfaces_hidden(), ffaces = createFisherfaces_hidden(), lbph = createLBPH_hidden(); + Ptr efaces = createEigenfaces_ptr_hidden(), ffaces = createFisherfaces_ptr_hidden(), lbph = createLBPH_ptr_hidden(); return efaces->info() != 0 && ffaces->info() != 0 && lbph->info() != 0; } diff --git a/modules/core/include/opencv2/core/private.hpp b/modules/core/include/opencv2/core/private.hpp index c81efaf..a1cc0e5 100644 --- a/modules/core/include/opencv2/core/private.hpp +++ b/modules/core/include/opencv2/core/private.hpp @@ -128,12 +128,17 @@ namespace cv } //namespace cv #define CV_INIT_ALGORITHM(classname, algname, memberinit) \ - static ::cv::Algorithm* create##classname##_hidden() \ + static inline ::cv::Algorithm* create##classname##_hidden() \ { \ return new classname; \ } \ \ - static ::cv::AlgorithmInfo& classname##_info() \ + static inline ::cv::Ptr< ::cv::Algorithm> create##classname##_ptr_hidden() \ + { \ + return ::cv::makePtr(); \ + } \ + \ + static inline ::cv::AlgorithmInfo& classname##_info() \ { \ static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname##_hidden); \ return classname##_info_var; \ diff --git a/modules/ml/src/ml_init.cpp b/modules/ml/src/ml_init.cpp index 3d6669c..3ff7d9b 100644 --- a/modules/ml/src/ml_init.cpp +++ b/modules/ml/src/ml_init.cpp @@ -56,7 +56,7 @@ CV_INIT_ALGORITHM(EM, "StatModel.EM", bool initModule_ml(void) { - Ptr em = createEM_hidden(); + Ptr em = createEM_ptr_hidden(); return em->info() != 0; } diff --git a/modules/nonfree/src/nonfree_init.cpp b/modules/nonfree/src/nonfree_init.cpp index 827853c..ac804dd 100644 --- a/modules/nonfree/src/nonfree_init.cpp +++ b/modules/nonfree/src/nonfree_init.cpp @@ -67,7 +67,7 @@ CV_INIT_ALGORITHM(SIFT, "Feature2D.SIFT", bool initModule_nonfree(void) { - Ptr sift = createSIFT_hidden(), surf = createSURF_hidden(); + Ptr sift = createSIFT_ptr_hidden(), surf = createSURF_ptr_hidden(); return sift->info() != 0 && surf->info() != 0; } diff --git a/modules/softcascade/src/softcascade_init.cpp b/modules/softcascade/src/softcascade_init.cpp index 6978c4a..6f3c8b6 100644 --- a/modules/softcascade/src/softcascade_init.cpp +++ b/modules/softcascade/src/softcascade_init.cpp @@ -58,8 +58,8 @@ CV_INIT_ALGORITHM(SCascade, "CascadeDetector.SCascade", bool initModule_softcascade(void) { - Ptr sc = createSCascade_hidden(); - Ptr sc1 = createDetector_hidden(); + Ptr sc = createSCascade_ptr_hidden(); + Ptr sc1 = createDetector_ptr_hidden(); return (sc1->info() != 0) && (sc->info() != 0); } -- 2.7.4