Fixed "arr = NaN" case (bug #2056)
authorVadim Pisarevsky <vadim.pisarevsky@itseez.com>
Tue, 9 Oct 2012 12:28:31 +0000 (16:28 +0400)
committerVadim Pisarevsky <vadim.pisarevsky@itseez.com>
Tue, 9 Oct 2012 12:28:31 +0000 (16:28 +0400)
modules/core/src/copy.cpp

index 84732e3..4de669b 100644 (file)
@@ -306,8 +306,9 @@ Mat& Mat::operator = (const Scalar& s)
     uchar* dptr;
     NAryMatIterator it(arrays, &dptr, 1);
     size_t elsize = it.size*elemSize();
+    const int64* is = (const int64*)&s.val[0];
 
-    if( s[0] == 0 && s[1] == 0 && s[2] == 0 && s[3] == 0 )
+    if( is[0] == 0 && is[1] == 0 && is[2] == 0 && is[3] == 0 )
     {
         for( size_t i = 0; i < it.nplanes; i++, ++it )
             memset( dptr, 0, elsize );