mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 11:00:11 +01:00
mesa: remove fallback RefCount == 0 pattern
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>
This commit is contained in:
parent
0cc8c81902
commit
622a68ed3e
6 changed files with 25 additions and 59 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue