Fix an MSVC warning.
authorRalph Giles <giles@thaumas.net>
Fri, 17 Aug 2012 17:16:24 +0000 (10:16 -0700)
committerRalph Giles <giles@thaumas.net>
Fri, 17 Aug 2012 17:16:24 +0000 (10:16 -0700)
Microsoft Visual Studio 2010 warns about 'C4146: unary minus
operator applied to unsigned type, result still unsigned'
because of the '&-sizeof(void*)' in align().

This commit works around the warning by casting the size_t
to int before negation.

Patch by Hauke, who reported the issue on the opus mailing
list. Reviewed by derf.

src/opus_private.h

index 6534a5e..52482bc 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011 Xiph.Org Foundation
+/* Copyright (c) 2012 Xiph.Org Foundation
    Written by Jean-Marc Valin */
 /*
    Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@ int opus_decode_native(OpusDecoder *st, const unsigned char *data, opus_int32 le
 /* Make sure everything's aligned to sizeof(void *) bytes */
 static inline int align(int i)
 {
-    return (i+sizeof(void *)-1)&-sizeof(void *);
+    return (i+sizeof(void *)-1)&-((int)sizeof(void *));
 }
 
 opus_int32 opus_repacketizer_out_range_impl(OpusRepacketizer *rp, int begin, int end, unsigned char *data, opus_int32 maxlen, int self_delimited);