mesa: use inline function wrapper for _mesa_reference_texobj()
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:14:13 +0000 (08:14 -0600)
src/mesa/main/texobj.c
src/mesa/main/texobj.h

index 0e84b8744119d450a63a6d110fd9e029f18113e8..3021716a0b6719a7876b187c3c840f80eaff6070 100644 (file)
@@ -325,16 +325,14 @@ valid_texture_object(const struct gl_texture_object *tex)
  * Reference (or unreference) a texture object.
  * If '*ptr', decrement *ptr's refcount (and delete if it becomes zero).
  * If 'tex' is non-null, increment its refcount.
+ * This is normally only called from the _mesa_reference_texobj() macro
+ * when there's a real pointer change.
  */
 void
-_mesa_reference_texobj(struct gl_texture_object **ptr,
-                       struct gl_texture_object *tex)
+_mesa_reference_texobj_(struct gl_texture_object **ptr,
+                        struct gl_texture_object *tex)
 {
    assert(ptr);
-   if (*ptr == tex) {
-      /* no change */
-      return;
-   }
 
    if (*ptr) {
       /* Unreference the old texture */
index 476a17537a30d397db6f8023e4905880e5405730..1faae6f7e3032964e105112f3b92629f81549ac9 100644 (file)
@@ -32,6 +32,7 @@
 #define TEXTOBJ_H
 
 
+#include "compiler.h"
 #include "glheader.h"
 
 struct gl_context;
@@ -64,8 +65,17 @@ _mesa_clear_texture_object(struct gl_context *ctx,
                            struct gl_texture_object *obj);
 
 extern void
+_mesa_reference_texobj_(struct gl_texture_object **ptr,
+                        struct gl_texture_object *tex);
+
+static INLINE void
 _mesa_reference_texobj(struct gl_texture_object **ptr,
-                       struct gl_texture_object *tex);
+                       struct gl_texture_object *tex)
+{
+   if (*ptr != tex)
+      _mesa_reference_texobj_(ptr, tex);
+}
+
 
 extern void
 _mesa_test_texobj_completeness( const struct gl_context *ctx,