main: use inline function wrapper for _mesa_reference_buffer_object()
authorBrian Paul <brianp@vmware.com>
Thu, 14 Jul 2011 14:09:21 +0000 (08:09 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 14 Jul 2011 14:09:38 +0000 (08:09 -0600)
src/mesa/main/bufferobj.c
src/mesa/main/bufferobj.h

index 3e28d34..c52358e 100644 (file)
@@ -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;
index 91fa073..f82e414 100644 (file)
@@ -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);