Catch exceptions by const-reference
authorMichał Janiszewski <janisozaur+signed@gmail.com>
Tue, 16 Oct 2018 19:09:26 +0000 (21:09 +0200)
committerMichał Janiszewski <janisozaur+signed@gmail.com>
Tue, 16 Oct 2018 20:43:54 +0000 (22:43 +0200)
Exceptions caught by value incur needless cost in C++, most of them can
be caught by const-reference, especially as nearly none are actually
used. This could allow compiler generate a slightly more efficient code.

modules/core/src/copy.cpp
modules/core/test/test_ds.cpp
modules/imgproc/src/canny.cpp
modules/imgproc/src/deriv.cpp
modules/imgproc/src/morph.cpp
modules/imgproc/src/resize.cpp
modules/imgproc/src/smooth.cpp

index 98ab15d..7fb850e 100644 (file)
@@ -729,7 +729,7 @@ static bool ipp_flip(Mat &src, Mat &dst, int flip_mode)
 
         CV_INSTRUMENT_FUN_IPP(::ipp::iwiMirror, iwSrc, iwDst, ippMode);
     }
-    catch(::ipp::IwException)
+    catch(const ::ipp::IwException &)
     {
         return false;
     }
index 3a1a00b..64d54c5 100644 (file)
@@ -1032,7 +1032,7 @@ void Core_SeqBaseTest::run( int )
                 cvClearMemStorage( storage );
         }
     }
-    catch(int)
+    catch(const int &)
     {
     }
 }
@@ -1200,7 +1200,7 @@ void Core_SeqSortInvTest::run( int )
             storage.release();
         }
     }
-    catch (int)
+    catch (const int &)
     {
     }
 }
@@ -1416,7 +1416,7 @@ void Core_SetTest::run( int )
             storage.release();
         }
     }
-    catch(int)
+    catch(const int &)
     {
     }
 }
@@ -1859,7 +1859,7 @@ void Core_GraphTest::run( int )
             storage.release();
         }
     }
-    catch(int)
+    catch(const int &)
     {
     }
 }
@@ -2121,7 +2121,7 @@ void Core_GraphScanTest::run( int )
             storage.release();
         }
     }
-    catch(int)
+    catch(const int &)
     {
     }
 }
index 22c24ea..89eac24 100644 (file)
@@ -93,7 +93,7 @@ static bool ipp_Canny(const Mat& src , const Mat& dx_, const Mat& dy_, Mat& dst,
 
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterCannyDeriv, iwSrcDx, iwSrcDy, iwDst, low, high, ::ipp::IwiFilterCannyDerivParams(norm));
         }
-        catch (::ipp::IwException ex)
+        catch (const ::ipp::IwException &)
         {
             return false;
         }
@@ -119,7 +119,7 @@ static bool ipp_Canny(const Mat& src , const Mat& dx_, const Mat& dy_, Mat& dst,
 
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterCanny, iwSrc, iwDst, low, high, ::ipp::IwiFilterCannyParams(ippFilterSobel, kernel, norm), ippBorderRepl);
         }
-        catch (::ipp::IwException)
+        catch (const ::ipp::IwException &)
         {
             return false;
         }
index a2e339c..b83fece 100644 (file)
@@ -337,7 +337,7 @@ static bool ipp_Deriv(InputArray _src, OutputArray _dst, int dx, int dy, int ksi
         if(useScale)
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiScale, iwDstProc, iwDst, scale, delta, ::ipp::IwiScaleParams(ippAlgHintFast));
     }
-    catch (::ipp::IwException)
+    catch (const ::ipp::IwException &)
     {
         return false;
     }
@@ -765,7 +765,7 @@ static bool ipp_Laplacian(InputArray _src, OutputArray _dst, int ksize, double s
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiScale, iwDstProc, iwDst, scale, delta);
 
     }
-    catch (::ipp::IwException ex)
+    catch (const ::ipp::IwException &)
     {
         return false;
     }
index 66fae07..08a9969 100644 (file)
@@ -1299,7 +1299,7 @@ static bool ippMorph(int op, int src_type, int dst_type,
                 CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterMorphology, iwSrc, iwDst, morphType, iwMask, ::ipp::IwDefault(), iwBorderType);
         }
     }
-    catch(::ipp::IwException ex)
+    catch(const ::ipp::IwException &)
     {
         return false;
     }
index 688f4c7..7eeefc7 100644 (file)
@@ -3241,7 +3241,7 @@ public:
             ::ipp::IwiTile tile = ::ipp::IwiRoi(0, range.start, m_dst.m_size.width, range.end - range.start);
             CV_INSTRUMENT_FUN_IPP(iwiResize, m_src, m_dst, ippBorderRepl, tile);
         }
-        catch(::ipp::IwException)
+        catch(const ::ipp::IwException &)
         {
             m_ok = false;
             return;
@@ -3291,7 +3291,7 @@ public:
             ::ipp::IwiTile tile = ::ipp::IwiRoi(0, range.start, m_dst.m_size.width, range.end - range.start);
             CV_INSTRUMENT_FUN_IPP(iwiWarpAffine, m_src, m_dst, tile);
         }
-        catch(::ipp::IwException)
+        catch(const ::ipp::IwException &)
         {
             m_ok = false;
             return;
@@ -3387,7 +3387,7 @@ static bool ipp_resize(const uchar * src_data, size_t src_step, int src_width, i
         if(!ok)
             return false;
     }
-    catch(::ipp::IwException)
+    catch(const ::ipp::IwException &)
     {
         return false;
     }
index f327d9f..3eb7959 100644 (file)
@@ -1510,7 +1510,7 @@ static bool ipp_boxfilter(Mat &src, Mat &dst, Size ksize, Point anchor, bool nor
 
         CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterBox, iwSrc, iwDst, iwKSize, ::ipp::IwDefault(), ippBorder);
     }
-    catch (::ipp::IwException)
+    catch (const ::ipp::IwException &)
     {
         return false;
     }
@@ -4000,7 +4000,7 @@ public:
             ::ipp::IwiTile tile = ::ipp::IwiRoi(0, range.start, m_dst.m_size.width, range.end - range.start);
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterGaussian, m_src, m_dst, m_kernelSize, m_sigma, ::ipp::IwDefault(), m_border, tile);
         }
-        catch(::ipp::IwException e)
+        catch(const ::ipp::IwException &)
         {
             *m_pOk = false;
             return;
@@ -4067,7 +4067,7 @@ static bool ipp_GaussianBlur(InputArray _src, OutputArray _dst, Size ksize,
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterGaussian, iwSrc, iwDst, ksize.width, sigma1, ::ipp::IwDefault(), ippBorder);
         }
     }
-    catch (::ipp::IwException ex)
+    catch (const ::ipp::IwException &)
     {
         return false;
     }
@@ -5878,7 +5878,7 @@ public:
             ::ipp::IwiTile tile = ::ipp::IwiRoi(0, range.start, dst.m_size.width, range.end - range.start);
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterBilateral, src, dst, radius, valSquareSigma, posSquareSigma, ::ipp::IwDefault(), borderType, tile);
         }
-        catch(::ipp::IwException)
+        catch(const ::ipp::IwException &)
         {
             *pOk = false;
             return;
@@ -5933,7 +5933,7 @@ static bool ipp_bilateralFilter(Mat &src, Mat &dst, int d, double sigmaColor, do
             CV_INSTRUMENT_FUN_IPP(::ipp::iwiFilterBilateral, iwSrc, iwDst, radius, valSquareSigma, posSquareSigma, ::ipp::IwDefault(), ippBorder);
         }
     }
-    catch (::ipp::IwException)
+    catch (const ::ipp::IwException &)
     {
         return false;
     }