mesa: remove fallback RefCount == 0 pattern
authorTimothy Arceri <tarceri@itsqueeze.com>
Fri, 21 Apr 2017 03:29:46 +0000 (13:29 +1000)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sat, 22 Apr 2017 00:01:15 +0000 (10:01 +1000)
We should never get here if this is 0 unless there is a
bug. Replace the check with an assert.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
src/mesa/main/arrayobj.c
src/mesa/main/bufferobj.c
src/mesa/main/pipelineobj.c
src/mesa/main/samplerobj.c
src/mesa/main/texobj.c
src/mesa/main/transformfeedback.c

index ab1b834b6d9e9bf7248a09ff66b73e4159c4ff08..fdb3caad9542a7c84f19396d8b2b16dc2b20fe6c 100644 (file)
@@ -208,16 +208,10 @@ _mesa_reference_vao_(struct gl_context *ctx,
    if (vao) {
       /* reference new array object */
       mtx_lock(&vao->Mutex);
-      if (vao->RefCount == 0) {
-         /* this array's being deleted (look just above) */
-         /* Not sure this can every really happen.  Warn if it does. */
-         _mesa_problem(NULL, "referencing deleted array object");
-         *ptr = NULL;
-      }
-      else {
-         vao->RefCount++;
-         *ptr = vao;
-      }
+      assert(vao->RefCount > 0);
+
+      vao->RefCount++;
+      *ptr = vao;
       mtx_unlock(&vao->Mutex);
    }
 }
index 922c7d82fcbd31ee51f182c1e8c0657bb92b0cfb..961871c91d55ecdc16cd485dd975ca89ae971559 100644 (file)
@@ -511,16 +511,10 @@ _mesa_reference_buffer_object_(struct gl_context *ctx,
    if (bufObj) {
       /* reference new buffer */
       mtx_lock(&bufObj->Mutex);
-      if (bufObj->RefCount == 0) {
-         /* this buffer's being deleted (look just above) */
-         /* Not sure this can every really happen.  Warn if it does. */
-         _mesa_problem(NULL, "referencing deleted buffer object");
-         *ptr = NULL;
-      }
-      else {
-         bufObj->RefCount++;
-         *ptr = bufObj;
-      }
+      assert(bufObj->RefCount > 0);
+
+      bufObj->RefCount++;
+      *ptr = bufObj;
       mtx_unlock(&bufObj->Mutex);
    }
 }
index c1dd8d75c76310044de6960d6db6bd9ff068d3c5..2988c97455e875cdd1336862df7c23e9eaa897a9 100644 (file)
@@ -206,16 +206,10 @@ _mesa_reference_pipeline_object_(struct gl_context *ctx,
    if (obj) {
       /* reference new pipeline object */
       mtx_lock(&obj->Mutex);
-      if (obj->RefCount == 0) {
-         /* this pipeline's being deleted (look just above) */
-         /* Not sure this can ever really happen.  Warn if it does. */
-         _mesa_problem(NULL, "referencing deleted pipeline object");
-         *ptr = NULL;
-      }
-      else {
-         obj->RefCount++;
-         *ptr = obj;
-      }
+      assert(obj->RefCount > 0);
+
+      obj->RefCount++;
+      *ptr = obj;
       mtx_unlock(&obj->Mutex);
    }
 }
index 183f1d2a8620fa18f327e7413fa866ac5a0a2c24..63beaf1abba899132e52a1729d859c2d275d1b07 100644 (file)
@@ -97,16 +97,10 @@ _mesa_reference_sampler_object_(struct gl_context *ctx,
    if (samp) {
       /* reference new sampler */
       mtx_lock(&samp->Mutex);
-      if (samp->RefCount == 0) {
-         /* this sampler's being deleted (look just above) */
-         /* Not sure this can every really happen.  Warn if it does. */
-         _mesa_problem(NULL, "referencing deleted sampler object");
-         *ptr = NULL;
-      }
-      else {
-         samp->RefCount++;
-         *ptr = samp;
-      }
+      assert(samp->RefCount > 0);
+
+      samp->RefCount++;
+      *ptr = samp;
       mtx_unlock(&samp->Mutex);
    }
 }
index 00feb975522df00b514e87f5a8bbb29242397a5e..af9baa976fc736b3ef560a4721ca1b23cceb6273 100644 (file)
@@ -566,16 +566,10 @@ _mesa_reference_texobj_(struct gl_texture_object **ptr,
       /* reference new texture */
       assert(valid_texture_object(tex));
       mtx_lock(&tex->Mutex);
-      if (tex->RefCount == 0) {
-         /* this texture's being deleted (look just above) */
-         /* Not sure this can every really happen.  Warn if it does. */
-         _mesa_problem(NULL, "referencing deleted texture object");
-         *ptr = NULL;
-      }
-      else {
-         tex->RefCount++;
-         *ptr = tex;
-      }
+      assert(tex->RefCount > 0);
+
+      tex->RefCount++;
+      *ptr = tex;
       mtx_unlock(&tex->Mutex);
    }
 }
index 96f3df1c961e2bb558bea7dd3ad1440475c3485a..131014ff65320a4206177273aa58d5c74b03c58a 100644 (file)
@@ -110,16 +110,12 @@ reference_transform_feedback_object(struct gl_transform_feedback_object **ptr,
    assert(!*ptr);
 
    if (obj) {
+      assert(obj->RefCount > 0);
+
       /* reference new object */
-      if (obj->RefCount == 0) {
-         _mesa_problem(NULL, "referencing deleted transform feedback object");
-         *ptr = NULL;
-      }
-      else {
-         obj->RefCount++;
-         obj->EverBound = GL_TRUE;
-         *ptr = obj;
-      }
+      obj->RefCount++;
+      obj->EverBound = GL_TRUE;
+      *ptr = obj;
    }
 }