avutil/utils: Remove racy check from avutil_version()

avutil_version() currently performs several checks before
just returning the version. There is a static int that aims
to ensure that these tests are run only once. The reason is that
there used to be a slightly expensive check, but it has been removed
in 92e3a6fdac. Today running only
once is unnecessary and can be counterproductive: GCC 10 optimizes
all the actual checks away, but the checks_done variable and the code
setting it has been kept. Given that this check is inherently racy
(it uses non-atomic variables), it is best to just remove it.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-09-26 10:56:49 +02:00
parent b2ec4edef7
commit ff80090374

View File

@ -37,10 +37,6 @@ const char *av_version_info(void)
unsigned avutil_version(void)
{
static int checks_done;
if (checks_done)
return LIBAVUTIL_VERSION_INT;
av_assert0(AV_SAMPLE_FMT_DBLP == 9);
av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4);
av_assert0(AV_PICTURE_TYPE_BI == 7);
@ -58,7 +54,6 @@ unsigned avutil_version(void)
av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n");
}
checks_done = 1;
return LIBAVUTIL_VERSION_INT;
}