Mercurial > hg > svcore
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 |