gralloc: add extra line of padding after aligning
authorGreg Hackmann <ghackmann@google.com>
Wed, 29 Aug 2012 16:58:45 +0000 (09:58 -0700)
committerGreg Hackmann <ghackmann@google.com>
Wed, 29 Aug 2012 18:31:26 +0000 (11:31 -0700)
Padding before aligning adds 15 unneeded lines.  Also check that the
extra line is needed (i.e., the alignment didn't add padding of its
own).

Change-Id: Iefbf5f26d8f346ba487195a5973693ae871f843f
Signed-off-by: Greg Hackmann <ghackmann@google.com>
gralloc/gralloc.cpp

index 1c0180b1280af7da8b102a7835e35a72a036d520..60242a58de2b85d4778729d7035b33949a713f31 100644 (file)
@@ -155,8 +155,11 @@ static int gralloc_alloc_rgb(int ionfd, int w, int h, int format, int usage,
             return -EINVAL;
     }
     bpr = ALIGN(w*bpp, 16);
-    vstride = ALIGN(h+1, 16);
-    size = bpr * vstride;
+    vstride = ALIGN(h, 16);
+    if (vstride == h)
+        size = bpr * (vstride + 1);
+    else
+        size = bpr * vstride;
     *stride = bpr / bpp;
     size = ALIGN(size, PAGE_SIZE);