summaryrefslogtreecommitdiffstats
path: root/sub/ass_mp.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-05-10 10:38:05 +0200
committerwm4 <wm4@nowhere>2014-05-10 10:44:16 +0200
commit485d033b5f72b9211c2910117ce82b520aea629b (patch)
tree8371778effa733bbc5f9b33c97d8c62abe7e6799 /sub/ass_mp.h
parent3c322b10221a18d83b55fbfdfe5d4e59e27772f7 (diff)
downloadmpv-485d033b5f72b9211c2910117ce82b520aea629b.tar.bz2
mpv-485d033b5f72b9211c2910117ce82b520aea629b.tar.xz
sub: fix undefined behavior in ASS color calculation
This might shift bits into the sign, which is undefined behavior. Making the right operand unsigned was supposed to help with this, but it seems it did nothing, and C99 makes the result type dependent on the left operand only.
Diffstat (limited to 'sub/ass_mp.h')
-rw-r--r--sub/ass_mp.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sub/ass_mp.h b/sub/ass_mp.h
index 8fb9104662..86c5c7ff0a 100644
--- a/sub/ass_mp.h
+++ b/sub/ass_mp.h
@@ -31,7 +31,7 @@
#define MP_ASS_FONT_PLAYRESY 288
#define MP_ASS_RGBA(r, g, b, a) \
- (((r) << 24U) | ((g) << 16) | ((b) << 8) | (0xFF - (a)))
+ (((unsigned)(r) << 24) | ((g) << 16) | ((b) << 8) | (0xFF - (a)))
// m_color argument
#define MP_ASS_COLOR(c) MP_ASS_RGBA((c).r, (c).g, (c).b, (c).a)