libbluray | branch: master | hpi1 <[email protected]> | Fri Apr 17 21:24:57 2015 +0300| [87cb0495b6db5bd264a2fb02849df68442ba9fec] | committer: hpi1
initialize UO mask padding bits to 0 Allows comparing UO masks with memcmp > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=87cb0495b6db5bd264a2fb02849df68442ba9fec --- src/libbluray/bdnav/mpls_parse.c | 2 ++ src/libbluray/bdnav/uo_mask_table.h | 13 ++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/libbluray/bdnav/mpls_parse.c b/src/libbluray/bdnav/mpls_parse.c index 69b0034..d26b1f0 100644 --- a/src/libbluray/bdnav/mpls_parse.c +++ b/src/libbluray/bdnav/mpls_parse.c @@ -56,6 +56,8 @@ mpls_parse_uo(uint8_t *buf, BD_UO_MASK *uo) BITBUFFER bb; bb_init(&bb, buf, 8); + memset(uo, 0, sizeof(BD_UO_MASK)); + uo->menu_call = bb_read(&bb, 1); uo->title_search = bb_read(&bb, 1); uo->chapter_search = bb_read(&bb, 1); diff --git a/src/libbluray/bdnav/uo_mask_table.h b/src/libbluray/bdnav/uo_mask_table.h index 3eb24d9..af0eca6 100644 --- a/src/libbluray/bdnav/uo_mask_table.h +++ b/src/libbluray/bdnav/uo_mask_table.h @@ -63,9 +63,9 @@ typedef struct bd_uo_mask_table_s static inline BD_UO_MASK bd_uo_mask_combine(BD_UO_MASK a, BD_UO_MASK b) { union { - BD_UO_MASK mask; uint64_t u64; - } mask_a, mask_b, result; + BD_UO_MASK mask; + } mask_a = {0}, mask_b = {0}, result; mask_a.mask = a; mask_b.mask = b; @@ -78,9 +78,12 @@ static inline BD_UO_MASK bd_uo_mask_combine(BD_UO_MASK a, BD_UO_MASK b) static inline BD_UO_MASK bd_empty_uo_mask(void) { - const BD_UO_MASK empty = EMPTY_UO_MASK; - return empty; -} + static const union { + const uint64_t u64; + const BD_UO_MASK mask; + } empty = {0}; + return empty.mask; +} #endif // _BD_UO_MASK_TABLE_H_ _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
