@@ -241,15 +241,14 @@ _mesa_delete_buffer_object(struct gl_context *ctx, | |||
/** | |||
* Set ptr to bufObj w/ reference counting. | |||
* This is normally only called from the _mesa_reference_buffer_object() macro | |||
* when there's a real pointer change. | |||
*/ | |||
void | |||
_mesa_reference_buffer_object(struct gl_context *ctx, | |||
struct gl_buffer_object **ptr, | |||
struct gl_buffer_object *bufObj) | |||
_mesa_reference_buffer_object_(struct gl_context *ctx, | |||
struct gl_buffer_object **ptr, | |||
struct gl_buffer_object *bufObj) | |||
{ | |||
if (*ptr == bufObj) | |||
return; | |||
if (*ptr) { | |||
/* Unreference the old buffer */ | |||
GLboolean deleteFlag = GL_FALSE; |
@@ -75,9 +75,19 @@ _mesa_initialize_buffer_object( struct gl_buffer_object *obj, | |||
GLuint name, GLenum target ); | |||
extern void | |||
_mesa_reference_buffer_object_(struct gl_context *ctx, | |||
struct gl_buffer_object **ptr, | |||
struct gl_buffer_object *bufObj); | |||
static INLINE void | |||
_mesa_reference_buffer_object(struct gl_context *ctx, | |||
struct gl_buffer_object **ptr, | |||
struct gl_buffer_object *bufObj); | |||
struct gl_buffer_object *bufObj) | |||
{ | |||
if (*ptr != bufObj) | |||
_mesa_reference_buffer_object_(ctx, ptr, bufObj); | |||
} | |||
extern void | |||
_mesa_init_buffer_object_functions(struct dd_function_table *driver); |