diff options
author | Sebastien Alaiwan <sebastien.alaiwan@allegrodvt.com> | 2017-12-07 16:06:24 +0100 |
---|---|---|
committer | Sebastien Alaiwan <sebastien.alaiwan@allegrodvt.com> | 2018-01-02 21:44:50 +0000 |
commit | 209649ce310e623b0486885734cb25898b0eb5bb (patch) | |
tree | 8114232e8482945cfa1cc29f07b2f37ca35e14f2 /aom_dsp/binary_codes_reader.c | |
parent | 2e7d66d9edde352222dc757ef2bb0296e821f48e (diff) |
binary_codes_writer.c: simplify control flow
Also, avoid uninitialized intermediate variable.
Change-Id: I9e9e1e816ae0c9f0ec664b7f7d3ca75a7a22c995
Diffstat (limited to 'aom_dsp/binary_codes_reader.c')
-rw-r--r-- | aom_dsp/binary_codes_reader.c | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/aom_dsp/binary_codes_reader.c b/aom_dsp/binary_codes_reader.c index 2f6954ba6..7eba5a42e 100644 --- a/aom_dsp/binary_codes_reader.c +++ b/aom_dsp/binary_codes_reader.c @@ -68,48 +68,50 @@ uint16_t aom_read_primitive_subexpfin_(aom_reader *r, uint16_t n, uint16_t k ACCT_STR_PARAM) { int i = 0; int mk = 0; - uint16_t v; + while (1) { int b = (i ? k + i - 1 : k); int a = (1 << b); + if (n <= mk + 3 * a) { - v = aom_read_primitive_quniform(r, n - mk, ACCT_STR_NAME) + mk; - break; - } else { - if (aom_read_bit(r, ACCT_STR_NAME)) { - i = i + 1; - mk += a; - } else { - v = aom_read_literal(r, b, ACCT_STR_NAME) + mk; - break; - } + return aom_read_primitive_quniform(r, n - mk, ACCT_STR_NAME) + mk; + } + + if (!aom_read_bit(r, ACCT_STR_NAME)) { + return aom_read_literal(r, b, ACCT_STR_NAME) + mk; } + + i = i + 1; + mk += a; } - return v; + + assert(0); + return 0; } static uint16_t aom_rb_read_primitive_subexpfin(struct aom_read_bit_buffer *rb, uint16_t n, uint16_t k) { int i = 0; int mk = 0; - uint16_t v; + while (1) { int b = (i ? k + i - 1 : k); int a = (1 << b); + if (n <= mk + 3 * a) { - v = aom_rb_read_primitive_quniform(rb, n - mk) + mk; - break; - } else { - if (aom_rb_read_bit(rb)) { - i = i + 1; - mk += a; - } else { - v = aom_rb_read_literal(rb, b) + mk; - break; - } + return aom_rb_read_primitive_quniform(rb, n - mk) + mk; + } + + if (!aom_rb_read_bit(rb)) { + return aom_rb_read_literal(rb, b) + mk; } + + i = i + 1; + mk += a; } - return v; + + assert(0); + return 0; } uint16_t aom_read_primitive_refsubexpfin_(aom_reader *r, uint16_t n, uint16_t k, |