Don't crash when calling jumpToFrame() on an empty QMovie
Properly return an invalid frame when calling jumpToFrame() with a non existent frame number. Fixes: QTBUG-79029 Change-Id: Ic40f4a6de3106fab42c0bb6c961194be47b04e31 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>bb10
parent
8c092570fc
commit
ba26496647
|
|
@ -416,7 +416,7 @@ QFrameInfo QMoviePrivate::infoForFrame(int frameNumber)
|
|||
} else {
|
||||
// We've read all frames now. Return an end marker
|
||||
haveReadAll = true;
|
||||
return QFrameInfo::endMarker();
|
||||
return frameNumber == greatestFrameNumber + 1 ? QFrameInfo::endMarker() : QFrameInfo();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ private slots:
|
|||
#ifndef QT_NO_WIDGETS
|
||||
void infiniteLoop();
|
||||
#endif
|
||||
void emptyMovie();
|
||||
};
|
||||
|
||||
// Testing get/set functions
|
||||
|
|
@ -220,5 +221,13 @@ void tst_QMovie::infiniteLoop()
|
|||
}
|
||||
#endif
|
||||
|
||||
void tst_QMovie::emptyMovie()
|
||||
{
|
||||
QMovie movie;
|
||||
movie.setCacheMode(QMovie::CacheAll);
|
||||
movie.jumpToFrame(100);
|
||||
QCOMPARE(movie.currentFrameNumber(), -1);
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QMovie)
|
||||
#include "tst_qmovie.moc"
|
||||
|
|
|
|||
Loading…
Reference in New Issue