Mesa (master): llvmpipe: Make more resilient to out-of-memory situations.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Fri Feb 3 19:00:09 UTC 2012


Module: Mesa
Branch: master
Commit: 8184228e8b894b434a87387c79d9a11a50684272
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8184228e8b894b434a87387c79d9a11a50684272

Author: José Fonseca <jfonseca at vmware.com>
Date:   Wed Nov  9 19:29:37 2011 +0000

llvmpipe: Make more resilient to out-of-memory situations.

Most of the code was alright, but we were missing a few paths.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 src/gallium/drivers/llvmpipe/lp_texture.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 8fac77b..e895485 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -978,7 +978,9 @@ alloc_image_data(struct llvmpipe_resource *lpr, unsigned level,
       /* tiled data is stored in regular memory */
       uint buffer_size = tex_image_size(lpr, level, layout);
       lpr->tiled[level].data = align_malloc(buffer_size, alignment);
-      memset(lpr->tiled[level].data, 0, buffer_size);
+      if (lpr->tiled[level].data) {
+         memset(lpr->tiled[level].data, 0, buffer_size);
+      }
    }
    else {
       assert(layout == LP_TEX_LAYOUT_LINEAR);
@@ -997,7 +999,9 @@ alloc_image_data(struct llvmpipe_resource *lpr, unsigned level,
          /* not a display target - allocate regular memory */
          uint buffer_size = tex_image_size(lpr, level, LP_TEX_LAYOUT_LINEAR);
          lpr->linear[level].data = align_malloc(buffer_size, alignment);
-         memset(lpr->linear[level].data, 0, buffer_size);
+         if (lpr->linear[level].data) {
+            memset(lpr->linear[level].data, 0, buffer_size);
+         }
       }
    }
 }




More information about the mesa-commit mailing list