Fix an error in some graphics error handling
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4059 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
1032a15d5a
commit
00dae09cda
2 changed files with 7 additions and 4 deletions
|
@ -2170,4 +2170,5 @@
|
|||
* graphics/nxmu/nx_getrectangle.c, graphics/nxsu/nx_getrectangle.c,
|
||||
graphics/mxtk/nx_getwindow.c, graphics/nxmu/nx_gettoobar.c: New
|
||||
interfaces to read from graphics memory
|
||||
|
||||
* graphics/nxbe/nxbe_bitmap.c: Fix an error in the error handling that
|
||||
can cause valid bitmaps to fail to render.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************************
|
||||
* graphics/nxbe/nxbe_bitmap.c
|
||||
*
|
||||
* Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -125,6 +125,7 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||
struct nxgl_rect_s bounds;
|
||||
struct nxgl_point_s offset;
|
||||
struct nxgl_rect_s remaining;
|
||||
unsigned int deststride;
|
||||
int i;
|
||||
|
||||
#ifdef CONFIG_DEBUG
|
||||
|
@ -150,10 +151,11 @@ void nxbe_bitmap(FAR struct nxbe_window_s *wnd, FAR const struct nxgl_rect_s *de
|
|||
}
|
||||
|
||||
/* Verify that the width of the destination rectangle does not exceed the
|
||||
* with of the source bitmap data
|
||||
* width of the source bitmap data
|
||||
*/
|
||||
|
||||
if ((((bounds.pt2.x - offset.x) * wnd->be->plane[0].pinfo.bpp) >> 3) > stride)
|
||||
deststride = (((bounds.pt2.x - bounds.pt1.x + 1) * wnd->be->plane[0].pinfo.bpp + 7) >> 3);
|
||||
if (deststride > stride)
|
||||
{
|
||||
gdbg("Bad dest width\n");
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue