Fixed some shared memory buffers not being cleared properly.
This commit is contained in:
parent
4b9c8cee74
commit
c0f9fd250f
2 changed files with 4 additions and 15 deletions
|
@ -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)){
|
||||||
|
|
|
@ -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)){
|
||||||
|
|
Loading…
Add table
Reference in a new issue