summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
diff options
context:
space:
mode:
authorJosé Fonseca <jrfonseca@tungstengraphics.com>2008-07-02 12:22:51 +0900
committerJosé Fonseca <jrfonseca@tungstengraphics.com>2008-07-02 12:29:07 +0900
commitea4ca10b1bec67c8a60db0e4e5581318ce9f62f9 (patch)
treedd815f4ea41b98cfba066a1aacc71da71a45e0f7 /src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
parent66b48202c221a25f3980df8f443ce63c2fb4119f (diff)
pipebuffer: Verify usage flag consistency. Minor cleanups.
Diffstat (limited to 'src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c')
-rw-r--r--src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
index f1a457dde4..bed4bec4fe 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c
@@ -217,7 +217,8 @@ pb_cache_is_buffer_compat(struct pb_cache_buffer *buf,
if(!pb_check_alignment(desc->alignment, buf->base.base.alignment))
return FALSE;
- /* XXX: check usage too? */
+ if(!pb_check_usage(desc->usage, buf->base.base.usage))
+ return FALSE;
return TRUE;
}
@@ -282,7 +283,7 @@ pb_cache_manager_create_buffer(struct pb_manager *_mgr,
assert(buf->buffer->base.refcount >= 1);
assert(pb_check_alignment(desc->alignment, buf->buffer->base.alignment));
- assert((buf->buffer->base.usage & desc->usage) == desc->usage);
+ assert(pb_check_usage(desc->usage, buf->buffer->base.usage));
assert(buf->buffer->base.size >= size);
buf->base.base.refcount = 1;
@@ -331,7 +332,10 @@ pb_cache_manager_create(struct pb_manager *provider,
{
struct pb_cache_manager *mgr;
- mgr = (struct pb_cache_manager *)CALLOC(1, sizeof(*mgr));
+ if(!provider)
+ return NULL;
+
+ mgr = CALLOC_STRUCT(pb_cache_manager);
if (!mgr)
return NULL;