Another fix for disable "conditional expression is constant"
authorVladimir Bystricky <vladimir.bystritsky@itseez.com>
Fri, 6 Dec 2013 10:42:06 +0000 (14:42 +0400)
committerVladimir Bystricky <vladimir.bystritsky@itseez.com>
Fri, 6 Dec 2013 10:42:06 +0000 (14:42 +0400)
modules/imgproc/src/smooth.cpp

index 7791a02..e334c99 100644 (file)
@@ -669,6 +669,7 @@ static bool ocl_boxFilter( InputArray _src, OutputArray _dst, int ddepth,
 
     size_t maxWorkItemSizes[32]; device.maxWorkItemSizes(maxWorkItemSizes);
     size_t tryWorkItems = maxWorkItemSizes[0];
+    bool dummy = true; // for make compiler happy
     do {
         size_t BLOCK_SIZE = tryWorkItems;
         while (BLOCK_SIZE > 32 && BLOCK_SIZE >= (size_t)ksize.width * 2 && BLOCK_SIZE > (size_t)sz.width * 2)
@@ -709,15 +710,15 @@ static bool ocl_boxFilter( InputArray _src, OutputArray _dst, int ddepth,
 
         size_t kernelWorkGroupSize = kernel.workGroupSize();
         if (localsize[0] <= kernelWorkGroupSize)
+        {
+            dummy = false;
             break;
+        }
 
         if (BLOCK_SIZE < kernelWorkGroupSize)
             return false;
         tryWorkItems = kernelWorkGroupSize;
-#pragma warning( push )
-#pragma warning( disable : 4127 )
-    } while (true);
-#pragma warning( pop )
+    } while (dummy);
 
     _dst.create(sz, CV_MAKETYPE(ddepth, cn));
     UMat dst = _dst.getUMat();