summaryrefslogtreecommitdiffstats
path: root/video/out
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2023-01-10 19:26:51 +0100
committersfan5 <sfan5@live.de>2023-01-12 22:02:07 +0100
commit1201d59f0b5b8acc93f15904b745ec342548f9c1 (patch)
tree5eba78a5fa4dd68b5c750eb2b6ab5bc76d92ffd0 /video/out
parent7b03cd367dd5416a4728ccea7e47dcd2827cbab7 (diff)
downloadmpv-1201d59f0b5b8acc93f15904b745ec342548f9c1.tar.bz2
mpv-1201d59f0b5b8acc93f15904b745ec342548f9c1.tar.xz
various: replace abort() with MP_ASSERT_UNREACHABLE() where appropriate
In debug mode the macro causes an assertion failure. In release mode it works differently and tells the compiler that it can assume the codepath will never execute. For this reason I was conversative in replacing it, e.g. in mpv-internal code that exhausts all valid values of an enum or when a condition is clear from directly preceding code.
Diffstat (limited to 'video/out')
-rw-r--r--video/out/d3d11/ra_d3d11.c2
-rw-r--r--video/out/gpu/osd.c2
-rw-r--r--video/out/gpu/shader_cache.c4
-rw-r--r--video/out/gpu/user_shaders.c4
-rw-r--r--video/out/gpu/video.c3
-rw-r--r--video/out/opengl/ra_gl.c14
-rw-r--r--video/out/placebo/ra_pl.c2
-rw-r--r--video/out/vo_vdpau.c2
8 files changed, 16 insertions, 17 deletions
diff --git a/video/out/d3d11/ra_d3d11.c b/video/out/d3d11/ra_d3d11.c
index 62fcc1f47e..38624daeb2 100644
--- a/video/out/d3d11/ra_d3d11.c
+++ b/video/out/d3d11/ra_d3d11.c
@@ -510,7 +510,7 @@ static struct ra_tex *tex_create(struct ra *ra,
tex_p->res = (ID3D11Resource *)tex_p->tex3d;
break;
default:
- abort();
+ MP_ASSERT_UNREACHABLE();
}
tex_p->array_slice = -1;
diff --git a/video/out/gpu/osd.c b/video/out/gpu/osd.c
index 75538dbdf4..91505a987d 100644
--- a/video/out/gpu/osd.c
+++ b/video/out/gpu/osd.c
@@ -225,7 +225,7 @@ bool mpgl_osd_draw_prepare(struct mpgl_osd *ctx, int index,
break;
}
default:
- abort();
+ MP_ASSERT_UNREACHABLE();
}
return true;
diff --git a/video/out/gpu/shader_cache.c b/video/out/gpu/shader_cache.c
index 1d5e563cb8..302508b543 100644
--- a/video/out/gpu/shader_cache.c
+++ b/video/out/gpu/shader_cache.c
@@ -486,7 +486,7 @@ static const char *vao_glsl_type(const struct ra_renderpass_input *e)
case 2: return "vec2";
case 3: return "vec3";
case 4: return "vec4";
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
}
@@ -553,7 +553,7 @@ static void update_uniform(struct gl_shader_cache *sc, struct sc_entry *e,
assert(e->pushc);
update_pushc(sc->ra, e->pushc, u);
break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
}
diff --git a/video/out/gpu/user_shaders.c b/video/out/gpu/user_shaders.c
index f0c8a9d19a..708de87485 100644
--- a/video/out/gpu/user_shaders.c
+++ b/video/out/gpu/user_shaders.c
@@ -102,7 +102,7 @@ bool eval_szexpr(struct mp_log *log, void *priv,
switch (expr[i].val.op) {
case SZEXP_OP_NOT: stack[idx-1] = !stack[idx-1]; break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
continue;
@@ -125,7 +125,7 @@ bool eval_szexpr(struct mp_log *log, void *priv,
case SZEXP_OP_GT: res = op1 > op2; break;
case SZEXP_OP_LT: res = op1 < op2; break;
case SZEXP_OP_EQ: res = op1 == op2; break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
if (!isfinite(res)) {
diff --git a/video/out/gpu/video.c b/video/out/gpu/video.c
index abe5e9333c..c9ab48d170 100644
--- a/video/out/gpu/video.c
+++ b/video/out/gpu/video.c
@@ -1915,8 +1915,7 @@ static void pass_sample(struct gl_video *p, struct image img,
} else if (scaler->kernel) {
pass_sample_separated(p, img, scaler, w, h);
} else {
- // Should never happen
- abort();
+ MP_ASSERT_UNREACHABLE(); // should never happen
}
// Apply any required multipliers. Separated scaling already does this in
diff --git a/video/out/opengl/ra_gl.c b/video/out/opengl/ra_gl.c
index 8eddb5fabc..03207e1c4a 100644
--- a/video/out/opengl/ra_gl.c
+++ b/video/out/opengl/ra_gl.c
@@ -295,7 +295,7 @@ static struct ra_tex *gl_tex_create_blank(struct ra *ra,
case 1: tex_gl->target = GL_TEXTURE_1D; break;
case 2: tex_gl->target = GL_TEXTURE_2D; break;
case 3: tex_gl->target = GL_TEXTURE_3D; break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
if (params->non_normalized) {
assert(params->dimensions == 2);
@@ -631,7 +631,7 @@ static struct ra_buf *gl_buf_create(struct ra *ra,
case RA_BUF_TYPE_TEX_UPLOAD: hint = GL_STREAM_DRAW; break;
case RA_BUF_TYPE_SHADER_STORAGE: hint = GL_STREAM_COPY; break;
case RA_BUF_TYPE_UNIFORM: hint = GL_STATIC_DRAW; break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
gl->BufferData(buf_gl->target, params->size, params->initial_data, hint);
@@ -738,7 +738,7 @@ static const char *shader_typestr(GLenum type)
case GL_VERTEX_SHADER: return "vertex";
case GL_FRAGMENT_SHADER: return "fragment";
case GL_COMPUTE_SHADER: return "compute";
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
}
@@ -964,14 +964,14 @@ static void update_uniform(struct ra *ra, struct ra_renderpass *pass,
case 2: gl->Uniform2f(loc, f[0], f[1]); break;
case 3: gl->Uniform3f(loc, f[0], f[1], f[2]); break;
case 4: gl->Uniform4f(loc, f[0], f[1], f[2], f[3]); break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
} else if (input->dim_v == 2 && input->dim_m == 2) {
gl->UniformMatrix2fv(loc, 1, GL_FALSE, f);
} else if (input->dim_v == 3 && input->dim_m == 3) {
gl->UniformMatrix3fv(loc, 1, GL_FALSE, f);
} else {
- abort();
+ MP_ASSERT_UNREACHABLE();
}
break;
}
@@ -1002,7 +1002,7 @@ static void update_uniform(struct ra *ra, struct ra_renderpass *pass,
break;
}
default:
- abort();
+ MP_ASSERT_UNREACHABLE();
}
}
@@ -1086,7 +1086,7 @@ static void gl_renderpass_run(struct ra *ra,
gl->MemoryBarrier(GL_TEXTURE_FETCH_BARRIER_BIT);
break;
}
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
}
for (int n = 0; n < params->num_values; n++)
diff --git a/video/out/placebo/ra_pl.c b/video/out/placebo/ra_pl.c
index d2590d35d3..dd24e1dadf 100644
--- a/video/out/placebo/ra_pl.c
+++ b/video/out/placebo/ra_pl.c
@@ -617,7 +617,7 @@ static void renderpass_run_pl(struct ra *ra,
case RA_VARTYPE_BUF_RW:
bind.object = (* (struct ra_buf **) val->data)->priv;
break;
- default: abort();
+ default: MP_ASSERT_UNREACHABLE();
};
p->binds[p->inp_index[val->index]] = bind;
diff --git a/video/out/vo_vdpau.c b/video/out/vo_vdpau.c
index b08348987a..da14693092 100644
--- a/video/out/vo_vdpau.c
+++ b/video/out/vo_vdpau.c
@@ -600,7 +600,7 @@ static void generate_osd_part(struct vo *vo, struct sub_bitmaps *imgs)
format = VDP_RGBA_FORMAT_B8G8R8A8;
break;
default:
- abort();
+ MP_ASSERT_UNREACHABLE();
};
assert(imgs->packed);