st/mesa: restore some parameter checking buffer object functions
authorBrian Paul <brianp@vmware.com>
Fri, 19 Jun 2009 20:42:37 +0000 (14:42 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 19 Jun 2009 20:43:55 +0000 (14:43 -0600)
These functions may be called from the VBO code (not just user GL calls)
so do some parameter sanity checking.

src/mesa/state_tracker/st_cb_bufferobjects.c

index 1ecf7bf7844fa8356e72764ed4f67d50cd4e51fa..4d9ff01c7768e85ac1c7041962f6388959759bf4 100644 (file)
@@ -98,6 +98,11 @@ st_bufferobj_subdata(GLcontext *ctx,
 {
    struct st_buffer_object *st_obj = st_buffer_object(obj);
 
+   /* we may be called from VBO code, so double-check params here */
+   ASSERT(offset >= 0);
+   ASSERT(size >= 0);
+   ASSERT(offset + size <= obj->Size);
+
    st_cond_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer,
                                   offset, size, data);
 }
@@ -115,6 +120,11 @@ st_bufferobj_get_subdata(GLcontext *ctx,
 {
    struct st_buffer_object *st_obj = st_buffer_object(obj);
 
+   /* we may be called from VBO code, so double-check params here */
+   ASSERT(offset >= 0);
+   ASSERT(size >= 0);
+   ASSERT(offset + size <= obj->Size);
+
    st_cond_flush_pipe_buffer_read(st_context(ctx), st_obj->buffer,
                                  offset, size, data);
 }