gallium: Use CALLOC for pb_buffer to ensure that all fields of pipe_buffer are initia...
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Tue, 29 Jan 2008 00:41:21 +0000 (09:41 +0900)
committerBen Skeggs <skeggsb@gmail.com>
Fri, 15 Feb 2008 02:50:23 +0000 (13:50 +1100)
src/mesa/pipe/pipebuffer/pb_buffer_malloc.c
src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c
src/mesa/pipe/pipebuffer/pb_bufmgr_pool.c

index fc83a00..2151f1d 100644 (file)
@@ -107,10 +107,9 @@ pb_malloc_buffer_create(size_t size,
 {
    struct malloc_buffer *buf;
    
-   /* TODO: accept an alignment parameter */
    /* TODO: do a single allocation */
    
-   buf = (struct malloc_buffer *)MALLOC(sizeof(struct malloc_buffer));
+   buf = CALLOC_STRUCT(malloc_buffer);
    if(!buf)
       return NULL;
    
index 2694f57..a2657da 100644 (file)
@@ -399,6 +399,8 @@ mm_buffer_destroy(struct pb_buffer *buf)
    struct mm_buffer *mm_buf = mm_buffer(buf);
    struct mm_pb_manager *mm = mm_buf->mgr;
    
+   assert(buf->base.refcount == 0);
+   
    _glthread_LOCK_MUTEX(mm->mutex);
    mmFreeMem(mm_buf->block);
    FREE(buf);
index 7c29954..f80c7e3 100644 (file)
@@ -258,7 +258,7 @@ pool_bufmgr_create(struct pb_manager *provider,
    if(!pool->map)
       goto failure;
 
-   pool->bufs = (struct pool_buffer *) MALLOC(numBufs * sizeof(*pool->bufs));
+   pool->bufs = (struct pool_buffer *)CALLOC(numBufs, sizeof(*pool->bufs));
    if (!pool->bufs)
       goto failure;