From 398faff9d421b21ff6e9340590e57a5e4563f122 Mon Sep 17 00:00:00 2001 From: Felix Kauselmann <2039670+selmf@users.noreply.github.com> Date: Sun, 9 Nov 2014 01:42:51 +0100 Subject: [PATCH] Fix bug in Render::nextDoublePage() function that could lead to segfault if the last page is a double page. Also fixes related bug that could lead to advancing beyond the actual page count. --- YACReader/render.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/YACReader/render.cpp b/YACReader/render.cpp index 080218c9..5f311657 100644 --- a/YACReader/render.cpp +++ b/YACReader/render.cpp @@ -850,12 +850,21 @@ void Render::nextPage() emit pageChanged(currentIndex); } else + { emit isLast(); + } } void Render::nextDoublePage() { int nextPage; - nextPage = currentIndex+2; + if (currentIndex +2 < (int)comic->numPages()) + { + nextPage = currentIndex+2; + } + else + { + nextPage = currentIndex; + } if(currentIndex != nextPage) { comic->setIndex(nextPage); @@ -864,6 +873,10 @@ void Render::nextDoublePage() update(); emit pageChanged(currentIndex); } + else + { + emit isLast(); + } } //si se solicita la página anterior, se calcula cuál debe ser en función de si se lee en modo a doble página o no. @@ -882,7 +895,9 @@ void Render::previousPage() emit pageChanged(currentIndex); } else + { emit isCover(); + } } void Render::previousDoublePage()