comparison data/fft/FFTDataServer.cpp @ 1084:e4d40c185c72

Fix overflow in width calculation
author Chris Cannam
date Wed, 10 Jun 2015 13:31:21 +0100
parents 027d8b943be5
children 9f4505ac9072
comparison
equal deleted inserted replaced
1083:7fb788f891d0 1084:e4d40c185c72
527 << m_width << "x" << m_height << endl; 527 << m_width << "x" << m_height << endl;
528 #endif 528 #endif
529 529
530 int maxCacheSize = 20 * 1024 * 1024; 530 int maxCacheSize = 20 * 1024 * 1024;
531 int columnSize = int(m_height * sizeof(fftsample) * 2 + sizeof(fftsample)); 531 int columnSize = int(m_height * sizeof(fftsample) * 2 + sizeof(fftsample));
532 if (m_width * columnSize < maxCacheSize * 2) m_cacheWidth = m_width; 532 if (m_width < ((maxCacheSize * 2) / columnSize)) m_cacheWidth = m_width;
533 else m_cacheWidth = maxCacheSize / columnSize; 533 else m_cacheWidth = maxCacheSize / columnSize;
534 534
535 #ifdef DEBUG_FFT_SERVER 535 #ifdef DEBUG_FFT_SERVER
536 cerr << "FFTDataServer(" << this << "): cache width nominal " 536 cerr << "FFTDataServer(" << this << "): cache width nominal "
537 << m_cacheWidth << ", actual "; 537 << m_cacheWidth << ", actual ";
1409 FFTDataServer::getError() const 1409 FFTDataServer::getError() const
1410 { 1410 {
1411 QString err; 1411 QString err;
1412 if (m_error != "") { 1412 if (m_error != "") {
1413 err = m_error; 1413 err = m_error;
1414 cerr << "FFTDataServer::getError: err (server " << this << ") = " << err << endl; 1414 // cerr << "FFTDataServer::getError: err (server " << this << ") = " << err << endl;
1415 } else { 1415 } else {
1416 MutexLocker locker(&m_fftBuffersLock, "FFTDataServer::getError"); 1416 MutexLocker locker(&m_fftBuffersLock, "FFTDataServer::getError");
1417 if (m_fillThread) { 1417 if (m_fillThread) {
1418 err = m_fillThread->getError(); 1418 err = m_fillThread->getError();
1419 cerr << "FFTDataServer::getError: err (server " << this << ", from thread " << m_fillThread 1419 // cerr << "FFTDataServer::getError: err (server " << this << ", from thread " << m_fillThread
1420 << ") = " << err << endl; 1420 // << ") = " << err << endl;
1421 } 1421 }
1422 } 1422 }
1423 return err; 1423 return err;
1424 } 1424 }
1425 1425