summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2009-08-28 12:52:16 +0100
committerJosé Fonseca <jfonseca@vmware.com>2009-08-28 12:52:31 +0100
commit9399b9a0e27915dd5a388ff42ad99a9024c79b33 (patch)
treeaefac915bf6ca837d300214a0f4f46d6f5fdbdb3 /src/gallium
parent0d7bed9f8973547b675c35c0083996e946d7cecb (diff)
downloadexternal_mesa3d-9399b9a0e27915dd5a388ff42ad99a9024c79b33.zip
external_mesa3d-9399b9a0e27915dd5a388ff42ad99a9024c79b33.tar.gz
external_mesa3d-9399b9a0e27915dd5a388ff42ad99a9024c79b33.tar.bz2
util: Reset size to zero when failed to allocate buffer.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/util/u_upload_mgr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/util/u_upload_mgr.c b/src/gallium/auxiliary/util/u_upload_mgr.c
index c90425f..eb635c9 100644
--- a/src/gallium/auxiliary/util/u_upload_mgr.c
+++ b/src/gallium/auxiliary/util/u_upload_mgr.c
@@ -123,21 +123,25 @@ static enum pipe_error
u_upload_alloc_buffer( struct u_upload_mgr *upload,
unsigned min_size )
{
+ unsigned size;
+
/* Release old buffer, if present:
*/
u_upload_flush( upload );
/* Allocate a new one:
*/
- upload->size = align(MAX2(upload->default_size, min_size), 4096);
+ size = align(MAX2(upload->default_size, min_size), 4096);
upload->buffer = pipe_buffer_create( upload->screen,
upload->alignment,
upload->usage | PIPE_BUFFER_USAGE_CPU_WRITE,
- upload->size );
+ size );
if (upload->buffer == NULL)
goto fail;
+ upload->size = size;
+
upload->offset = 0;
return 0;