comparison TempogramPlugin.cpp @ 34:2b2e707c8c20

Test and error message for buffer overrun (in anticipation of actually fixing it!)
author Chris Cannam
date Thu, 04 Sep 2014 10:40:51 +0100
parents 023d12fb71b1
children df696e57a150
comparison
equal deleted inserted replaced
33:a824d7d14eb9 34:2b2e707c8c20
524 524
525 for (int i = 0; i < m_cyclicTempogramOctaveDivider; i++){ 525 for (int i = 0; i < m_cyclicTempogramOctaveDivider; i++){
526 float sum = 0; 526 float sum = 0;
527 527
528 for (int j = 0; j < m_cyclicTempogramNumberOfOctaves; j++){ 528 for (int j = 0; j < m_cyclicTempogramNumberOfOctaves; j++){
529 sum += tempogramDFT[block][logBins[j][i]]; 529
530 if (block >= tempogramDFT.size()) {
531 cerr << "ERROR: at block = " << block << ", i = " << i << ", j = " << j << ": block " << block << " >= tempogramDFT.size() " << tempogramDFT.size() << endl;
532 } else if (j > logBins.size()) {
533 cerr << "ERROR: at block = " << block << ", i = " << i << ", j = " << j << ": j " << j << " >= logBins.size() " << logBins.size() << endl;
534 } else if (i > logBins[j].size()) {
535 cerr << "ERROR: at block = " << block << ", i = " << i << ", j = " << j << ": i " << i << " >= logBins[j].size() " << logBins[j].size() << endl;
536 } else if (logBins[j][i] >= tempogramDFT[block].size()) {
537 cerr << "ERROR: at block = " << block << ", i = " << i << ", j = " << j << ": logBins[j][i] " << logBins[j][i] << " >= tempogramDFT[block].size() " << tempogramDFT[block].size() << endl;
538 } else {
539 sum += tempogramDFT[block][logBins[j][i]];
540 }
530 } 541 }
531 cyclicTempogramFeature.values.push_back(sum/m_cyclicTempogramNumberOfOctaves); 542 cyclicTempogramFeature.values.push_back(sum/m_cyclicTempogramNumberOfOctaves);
532 assert(!isnan(cyclicTempogramFeature.values.back())); 543 assert(!isnan(cyclicTempogramFeature.values.back()));
533 } 544 }
534 545