diff options
author | José Fonseca <jrfonseca@tungstengraphics.com> | 2008-01-27 19:22:25 +0900 |
---|---|---|
committer | José Fonseca <jrfonseca@tungstengraphics.com> | 2008-01-27 19:22:25 +0900 |
commit | dac124081d4bbc9d7527661e4a96aa78077b9f52 (patch) | |
tree | c46964d41ea1aba37eb6745d5b7588e4af5fd100 /src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c | |
parent | e6c8278c04518b8b8b0960a9e21b48b6816fcc20 (diff) |
Do refcounting trhoughout all buffer objects, since it is now a base requirement.
Diffstat (limited to 'src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c')
-rw-r--r-- | src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c b/src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c index 2a62702c36..2694f57bca 100644 --- a/src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c +++ b/src/mesa/pipe/pipebuffer/pb_bufmgr_mm.c @@ -466,6 +466,11 @@ mm_bufmgr_create_buffer(struct pb_manager *mgr, return NULL; } + mm_buf->base.base.refcount = 1; + mm_buf->base.base.alignment = desc->alignment; + mm_buf->base.base.usage = desc->usage; + mm_buf->base.base.size = size; + mm_buf->base.vtbl = &mm_buffer_vtbl; mm_buf->mgr = mm; @@ -505,7 +510,7 @@ mm_bufmgr_destroy(struct pb_manager *mgr) mmDestroy(mm->heap); pb_unmap(mm->buffer); - pb_destroy(mm->buffer); + pb_reference(&mm->buffer, NULL); _glthread_UNLOCK_MUTEX(mm->mutex); @@ -579,7 +584,7 @@ mm_bufmgr_create(struct pb_manager *provider, mgr = mm_bufmgr_create_from_buffer(buffer, size, align2); if (!mgr) { - pb_destroy(buffer); + pb_reference(&buffer, NULL); return NULL; } |