Fixed some shared memory buffers not being cleared properly.

This commit is contained in:
Thulinma 2015-07-22 14:55:59 +02:00
parent 4b9c8cee74
commit c0f9fd250f
2 changed files with 4 additions and 15 deletions

View file

@ -327,18 +327,11 @@ namespace Mist {
return true; return true;
} }
if (keyNum < 1){keyNum = 1;} if (keyNum < 1){keyNum = 1;}
if (isBuffered(track, keyNum)){ //abort in case already buffered
//get corresponding page number int pageNumber = bufferedOnPage(track, keyNum);
int pageNumber = 0; if (pageNumber){
for (std::map<unsigned long, DTSCPageData>::iterator it = pagesByTrack[track].begin(); it != pagesByTrack[track].end(); it++){
if (it->first <= keyNum){
pageNumber = it->first;
}else{
break;
}
}
pageCounter[track][pageNumber] = 15; pageCounter[track][pageNumber] = 15;
VERYHIGH_MSG("Key %u is already buffered in page %d. Cancelling bufferFrame", keyNum, pageNumber); VERYHIGH_MSG("Track %u, key %u is already buffered in page %d. Cancelling bufferFrame", track, keyNum, pageNumber);
return true; return true;
} }
if (!pagesByTrack.count(track)){ if (!pagesByTrack.count(track)){

View file

@ -127,10 +127,6 @@ namespace Mist {
//A different process will handle this for us //A different process will handle this for us
return; return;
} }
//Do nothing if the page is not buffered
if (!isBuffered(tid, pageNumber)) {
return;
}
unsigned long mapTid = trackMap[tid]; unsigned long mapTid = trackMap[tid];
//If the given pagenumber is not a valid page on this track, do nothing //If the given pagenumber is not a valid page on this track, do nothing
if (!pagesByTrack[tid].count(pageNumber)){ if (!pagesByTrack[tid].count(pageNumber)){