Mesa (master): mesa: make _mesa_reference_shader_program() an inline function

Brian Paul brianp at kemper.freedesktop.org
Mon Jan 5 20:55:01 UTC 2015


Module: Mesa
Branch: master
Commit: 6d9aed19f389539e2c3c7bb928d2160004a0038b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d9aed19f389539e2c3c7bb928d2160004a0038b

Author: Brian Paul <brianp at vmware.com>
Date:   Fri Jan  2 16:56:12 2015 -0700

mesa: make _mesa_reference_shader_program() an inline function

which wraps _mesa_reference_shader_program_(), similar to what we do
for other reference-counted objects.

Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/main/shaderobj.c |    6 +++---
 src/mesa/main/shaderobj.h |   13 ++++++++++++-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 81bd782..02ccf45 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -193,9 +193,9 @@ _mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller)
  * Then set ptr to point to shProg, incrementing its refcount.
  */
 void
-_mesa_reference_shader_program(struct gl_context *ctx,
-                               struct gl_shader_program **ptr,
-                               struct gl_shader_program *shProg)
+_mesa_reference_shader_program_(struct gl_context *ctx,
+                                struct gl_shader_program **ptr,
+                                struct gl_shader_program *shProg)
 {
    assert(ptr);
    if (*ptr == shProg) {
diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h
index 05ddfeb..92f7a33 100644
--- a/src/mesa/main/shaderobj.h
+++ b/src/mesa/main/shaderobj.h
@@ -62,9 +62,20 @@ _mesa_lookup_shader_err(struct gl_context *ctx, GLuint name, const char *caller)
 
 
 extern void
-_mesa_reference_shader_program(struct gl_context *ctx,
+_mesa_reference_shader_program_(struct gl_context *ctx,
                                struct gl_shader_program **ptr,
                                struct gl_shader_program *shProg);
+
+static inline void
+_mesa_reference_shader_program(struct gl_context *ctx,
+                               struct gl_shader_program **ptr,
+                               struct gl_shader_program *shProg)
+{
+   if (*ptr != shProg)
+      _mesa_reference_shader_program_(ctx, ptr, shProg);
+}
+
+
 extern void
 _mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader);
 




More information about the mesa-commit mailing list