Mesa (master): st/mesa: fix OOM failure in bitmap code

Brian Paul brianp at kemper.freedesktop.org
Fri Nov 11 14:11:52 UTC 2011


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

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Nov 10 09:50:42 2011 -0700

st/mesa: fix OOM failure in bitmap code

---

 src/mesa/state_tracker/st_cb_bitmap.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
index 1a8854b..fa37be0 100644
--- a/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/src/mesa/state_tracker/st_cb_bitmap.c
@@ -376,6 +376,10 @@ setup_bitmap_vertex_data(struct st_context *st, bool normalized,
                                            PIPE_USAGE_STREAM,
                                            max_slots *
                                            sizeof(st->bitmap.vertices));
+      if (!st->bitmap.vbuf) {
+         /* out of memory */
+         return 0;
+      }
    }
 
    /* Positions are in clip coords since we need to do clipping in case
@@ -547,11 +551,12 @@ draw_bitmap_quad(struct gl_context *ctx, GLint x, GLint y, GLfloat z,
                                      sv->texture->target != PIPE_TEXTURE_RECT,
                                      x, y, width, height, z, color);
 
-   util_draw_vertex_buffer(pipe, st->cso_context, st->bitmap.vbuf, offset,
-                           PIPE_PRIM_TRIANGLE_FAN,
-                           4,  /* verts */
-                           3); /* attribs/vert */
-
+   if (st->bitmap.vbuf) {
+      util_draw_vertex_buffer(pipe, st->cso_context, st->bitmap.vbuf, offset,
+                              PIPE_PRIM_TRIANGLE_FAN,
+                              4,  /* verts */
+                              3); /* attribs/vert */
+   }
 
    /* restore state */
    cso_restore_rasterizer(cso);




More information about the mesa-commit mailing list