From 12daeb5fdf2d03d33a7088407f22454dcd79fd93 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 16 May 2010 19:37:21 +0000 Subject: [PATCH] Fix case where stride != width git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2683 42af7a65-404d-4744-a932-0658087f49c3 --- graphics/nxfonts/nxfonts_convert.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/graphics/nxfonts/nxfonts_convert.c b/graphics/nxfonts/nxfonts_convert.c index 0f8788b8f9..27549fa0c3 100644 --- a/graphics/nxfonts/nxfonts_convert.c +++ b/graphics/nxfonts/nxfonts_convert.c @@ -185,7 +185,7 @@ int NXF_FUNCNAME(nxf_convert,NXFONTS_SUFFIX) for (row = 0; row < height; row++) { - /* Process each byte in the glyph */ + /* Process each byte in the glyph row */ col = 0; dptr = (FAR NXF_PIXEL_T*)line; @@ -197,7 +197,7 @@ int NXF_FUNCNAME(nxf_convert,NXFONTS_SUFFIX) { bmbyte = *sptr++; - /* Process each bit in the byte */ + /* Process each bit in one byte */ for (bmbit = 7; bmbit >= 0 && col < width; bmbit--, col++) { @@ -224,15 +224,20 @@ int NXF_FUNCNAME(nxf_convert,NXFONTS_SUFFIX) nbits = 0; } } - - /* Handle any fractional bytes at the end */ - - if (nbits > 0) - { - *dptr = pixel; - } - line += stride; } + + /* The entire glyph row has been rendered. Handle any fractional bytes at + * the end of the row + */ + + if (nbits > 0) + { + *dptr = pixel; + } + + /* Point to the beginning of the next row */ + + line += stride; } #else /* Handle each row in both the input and output */