summaryrefslogtreecommitdiff
path: root/libavcodec/xbmdec.c
diff options
context:
space:
mode:
authorJose Da Silva <digital@joescat.com>2021-01-31 19:50:57 -0800
committerPaul B Mahol <onemda@gmail.com>2021-02-03 16:03:15 +0100
commit42c636c9722f64fe6290ea8eee13658d25f5fbe3 (patch)
treebfd4e5ead5b0267ee94d9428ab15cd1b71470b33 /libavcodec/xbmdec.c
parentb6bc981d257565d77d8d14d233cf9b461e63c280 (diff)
downloadffmpeg-42c636c9722f64fe6290ea8eee13658d25f5fbe3.tar.gz
avcodec/xbmenc: Pre-compute variables once for parse_str_int()
Some compilers are very intuitive, and others are not so much, so let's pre-compute the variables e and keylen outside the for loop. Ensuring a minor speed increase regardless of if compiler is smart enough to solve this improvement for itself, or not. Signed-off-by: Joe Da Silva <digital@joescat.com>
Diffstat (limited to 'libavcodec/xbmdec.c')
-rw-r--r--libavcodec/xbmdec.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/xbmdec.c b/libavcodec/xbmdec.c
index 2ce70204cf..b783d5abe5 100644
--- a/libavcodec/xbmdec.c
+++ b/libavcodec/xbmdec.c
@@ -39,11 +39,14 @@ static int convert(uint8_t x)
static int parse_str_int(const uint8_t *p, const uint8_t *end, const uint8_t *key)
{
- for(; p<end - strlen(key); p++) {
- if (!memcmp(p, key, strlen(key)))
+ int keylen = strlen(key);
+ const uint8_t *e = end - keylen;
+
+ for(; p < e; p++) {
+ if (!memcmp(p, key, keylen))
break;
}
- p += strlen(key);
+ p += keylen;
if (p >= end)
return INT_MIN;