diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 5b6f53db..d7034f90 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -859,6 +859,7 @@ Reinhard Nissl channels.conf for adding cDevice::Flush() to make sure that all data in the video card's buffers has been processed + for reporting a bug in checking the last area for misalignment in cOsd::CanHandleAreas() Richard Robson for reporting freezing replay if a timer starts while in Transfer Mode from the diff --git a/HISTORY b/HISTORY index fdc73496..f516497f 100644 --- a/HISTORY +++ b/HISTORY @@ -2945,3 +2945,5 @@ Video Disk Recorder Revision History input. - Fixed handling menu status messages when the list contents is scrolled (thanks Alfred Zastrow for reporting this one). +- Fixed checking the last area for misalignment in cOsd::CanHandleAreas() (thanks + to Reinhard Nissl for reporting this one). diff --git a/osd.c b/osd.c index d87bee3e..c7ec8b89 100644 --- a/osd.c +++ b/osd.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: osd.c 1.55 2004/06/15 20:29:42 kls Exp $ + * $Id: osd.c 1.56 2004/07/17 13:39:30 kls Exp $ */ #include "osd.h" @@ -603,11 +603,11 @@ cBitmap *cOsd::GetBitmap(int Area) eOsdError cOsd::CanHandleAreas(const tArea *Areas, int NumAreas) { for (int i = 0; i < NumAreas; i++) { + if (Areas[i].x1 > Areas[i].x2 || Areas[i].y1 > Areas[i].y2 || Areas[i].x1 < 0 || Areas[i].y1 < 0) + return oeWrongAlignment; for (int j = i + 1; j < NumAreas; j++) { if (Areas[i].Intersects(Areas[j])) return oeAreasOverlap; - if (Areas[i].x1 > Areas[i].x2 || Areas[i].y1 > Areas[i].y2 || Areas[i].x1 < 0 || Areas[i].y1 < 0) - return oeWrongAlignment; } } return oeOk;