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 92e3a6fdac73f7e1d69d69717219a7538877d7a0. 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> (cherry picked from commit ff800903747325f15056444c11053279e391d60b)
This commit is contained in:
parent
eb998e33ef
commit
ecd4490dd0
@ -37,10 +37,6 @@ const char *av_version_info(void)
|
|||||||
|
|
||||||
unsigned avutil_version(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(AV_SAMPLE_FMT_DBLP == 9);
|
||||||
av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4);
|
av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4);
|
||||||
av_assert0(AV_PICTURE_TYPE_BI == 7);
|
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");
|
av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
checks_done = 1;
|
|
||||||
return LIBAVUTIL_VERSION_INT;
|
return LIBAVUTIL_VERSION_INT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user