Added to CV_INIT_ALGORITHM a Ptr creation function, for convenience.
authorRoman Donchenko <roman.donchenko@itseez.com>
Wed, 14 Aug 2013 08:41:58 +0000 (12:41 +0400)
committerRoman Donchenko <roman.donchenko@itseez.com>
Thu, 5 Sep 2013 15:03:00 +0000 (19:03 +0400)
Also changed the static functions to inline, to stop GCC complaining
about unused functions.

modules/contrib/src/facerec.cpp
modules/core/include/opencv2/core/private.hpp
modules/ml/src/ml_init.cpp
modules/nonfree/src/nonfree_init.cpp
modules/softcascade/src/softcascade_init.cpp

index c7e4322..1bea74e 100644 (file)
@@ -894,7 +894,7 @@ CV_INIT_ALGORITHM(LBPH, "FaceRecognizer.LBPH",
 
 bool initModule_contrib()
 {
-    Ptr<Algorithm> efaces = createEigenfaces_hidden(), ffaces = createFisherfaces_hidden(), lbph = createLBPH_hidden();
+    Ptr<Algorithm> efaces = createEigenfaces_ptr_hidden(), ffaces = createFisherfaces_ptr_hidden(), lbph = createLBPH_ptr_hidden();
     return efaces->info() != 0 && ffaces->info() != 0 && lbph->info() != 0;
 }
 
index c81efaf..a1cc0e5 100644 (file)
@@ -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<classname>(); \
+    } \
+    \
+    static inline ::cv::AlgorithmInfo& classname##_info() \
     { \
         static ::cv::AlgorithmInfo classname##_info_var(algname, create##classname##_hidden); \
         return classname##_info_var; \
index 3d6669c..3ff7d9b 100644 (file)
@@ -56,7 +56,7 @@ CV_INIT_ALGORITHM(EM, "StatModel.EM",
 
 bool initModule_ml(void)
 {
-    Ptr<Algorithm> em = createEM_hidden();
+    Ptr<Algorithm> em = createEM_ptr_hidden();
     return em->info() != 0;
 }
 
index 827853c..ac804dd 100644 (file)
@@ -67,7 +67,7 @@ CV_INIT_ALGORITHM(SIFT, "Feature2D.SIFT",
 
 bool initModule_nonfree(void)
 {
-    Ptr<Algorithm> sift = createSIFT_hidden(), surf = createSURF_hidden();
+    Ptr<Algorithm> sift = createSIFT_ptr_hidden(), surf = createSURF_ptr_hidden();
     return sift->info() != 0 && surf->info() != 0;
 }
 
index 6978c4a..6f3c8b6 100644 (file)
@@ -58,8 +58,8 @@ CV_INIT_ALGORITHM(SCascade, "CascadeDetector.SCascade",
 
 bool initModule_softcascade(void)
 {
-    Ptr<Algorithm> sc = createSCascade_hidden();
-    Ptr<Algorithm> sc1 = createDetector_hidden();
+    Ptr<Algorithm> sc = createSCascade_ptr_hidden();
+    Ptr<Algorithm> sc1 = createDetector_ptr_hidden();
     return (sc1->info() != 0) && (sc->info() != 0);
 }