No more crashes opening sibling comics in YACReader (by now). //TODO check sync issues

This commit is contained in:
Luis Ángel San Martín
2015-02-25 15:27:05 +01:00
parent 07ce397ec5
commit 7febfdb109
3 changed files with 58 additions and 51 deletions

View File

@ -937,27 +937,31 @@ void Render::setNumPages(unsigned int numPages)
void Render::pageRawDataReady(int page)
{
pagesEmited.push_back(page);
if(pageRenders.size()>0)
{
for(int i=0;i<pagesEmited.size();i++)
{
if (!hasLoadedComic())
return;
pagesEmited.push_back(page);
if(pageRenders.size()>0)
{
for(int i=0;i<pagesEmited.size();i++)
{
if(pagesEmited.at(i)>= pagesReady.size())
return;
pagesReady[pagesEmited.at(i)] = true;
if(pagesEmited.at(i) == currentIndex)
update();
else
{
if ( ((pagesEmited.at(i) < currentIndex) && (pagesEmited.at(i) > currentIndex-numLeftPages)) ||
((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) )
{
fillBuffer();
}
}
}
pagesEmited.clear();
}
return; //Oooops, something went wrong
pagesReady[pagesEmited.at(i)] = true;
if(pagesEmited.at(i) == currentIndex)
update();
else
{
if ( ((pagesEmited.at(i) < currentIndex) && (pagesEmited.at(i) > currentIndex-numLeftPages)) ||
((pagesEmited.at(i) > currentIndex) && (pagesEmited.at(i) < currentIndex+numRightPages)) )
{
fillBuffer();
}
}
}
pagesEmited.clear();
}
}
//s<>lo se renderiza la p<>gina, si ha habido un cambio de p<>gina