Mesa (master): intel: Fix migration from sys_buffer in intel_bufferobj_buffer.
Eric Anholt
anholt at kemper.freedesktop.org
Fri Jun 19 23:46:29 UTC 2009
Module: Mesa
Branch: master
Commit: 1a7ec317efb2570db3fc5123a2e9b74b54df8147
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1a7ec317efb2570db3fc5123a2e9b74b54df8147
Author: Chia-I Wu <olvaffe at gmail.com>
Date: Thu Jun 18 13:42:22 2009 +0800
intel: Fix migration from sys_buffer in intel_bufferobj_buffer.
intel_bufferobj_subdata is called to migrate data from sys_buffer, and
it expects only one of buffer or sys_buffer is non-NULL.
Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Signed-off-by: Eric Anholt <eric at anholt.net>
---
src/mesa/drivers/dri/intel/intel_buffer_objects.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_buffer_objects.c b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
index 1f10dec..0100003 100644
--- a/src/mesa/drivers/dri/intel/intel_buffer_objects.c
+++ b/src/mesa/drivers/dri/intel/intel_buffer_objects.c
@@ -300,15 +300,19 @@ intel_bufferobj_buffer(struct intel_context *intel,
}
if (intel_obj->buffer == NULL) {
+ void *sys_buffer = intel_obj->sys_buffer;
+
+ /* only one of buffer and sys_buffer could be non-NULL */
intel_bufferobj_alloc_buffer(intel, intel_obj);
+ intel_obj->sys_buffer = NULL;
+
intel_bufferobj_subdata(&intel->ctx,
GL_ARRAY_BUFFER_ARB,
0,
intel_obj->Base.Size,
- intel_obj->sys_buffer,
+ sys_buffer,
&intel_obj->Base);
- _mesa_free(intel_obj->sys_buffer);
- intel_obj->sys_buffer = NULL;
+ _mesa_free(sys_buffer);
}
return intel_obj->buffer;
More information about the mesa-commit
mailing list