From 29fb49194bedc74ac9be0b49b6b42dcfeb6222d9 Mon Sep 17 00:00:00 2001 From: Wan-Teh Chang Date: Wed, 23 Nov 2016 11:21:56 -0800 Subject: [PATCH] avutil/cpu: remove the |checked| static variable Remove the |checked| variable because the invalid value of -1 for |flags| can be used to indicate the same condition. Also rename |flags| to |cpu_flags| because there are a local variable and a function parameter named |flags| in the same file. Co-author: Dmitry Vyukov of Google Signed-off-by: Michael Niedermayer --- libavutil/cpu.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/libavutil/cpu.c b/libavutil/cpu.c index f5785fc13f..73317c4d4c 100644 --- a/libavutil/cpu.c +++ b/libavutil/cpu.c @@ -44,7 +44,20 @@ #include #endif -static int flags, checked; +static int cpu_flags = -1; + +static int get_cpu_flags(void) +{ + if (ARCH_AARCH64) + return ff_get_cpu_flags_aarch64(); + if (ARCH_ARM) + return ff_get_cpu_flags_arm(); + if (ARCH_PPC) + return ff_get_cpu_flags_ppc(); + if (ARCH_X86) + return ff_get_cpu_flags_x86(); + return 0; +} void av_force_cpu_flags(int arg){ if ( (arg & ( AV_CPU_FLAG_3DNOW | @@ -69,33 +82,22 @@ void av_force_cpu_flags(int arg){ arg |= AV_CPU_FLAG_MMX; } - flags = arg; - checked = arg != -1; + cpu_flags = arg; } int av_get_cpu_flags(void) { - if (checked) - return flags; - - if (ARCH_AARCH64) - flags = ff_get_cpu_flags_aarch64(); - if (ARCH_ARM) - flags = ff_get_cpu_flags_arm(); - if (ARCH_PPC) - flags = ff_get_cpu_flags_ppc(); - if (ARCH_X86) - flags = ff_get_cpu_flags_x86(); - - checked = 1; + int flags = cpu_flags; + if (flags == -1) { + flags = get_cpu_flags(); + cpu_flags = flags; + } return flags; } void av_set_cpu_flags_mask(int mask) { - checked = 0; - flags = av_get_cpu_flags() & mask; - checked = 1; + cpu_flags = get_cpu_flags() & mask; } int av_parse_cpu_flags(const char *s)