shithub: opus

Download patch

ref: 3a9b35453c1bef1293c6faf73f95b8697ad4232c
parent: 2b14ac23f18f0d18f8df6af8e7892981b9cbd784
author: Ralph Giles <[email protected]>
date: Fri Aug 17 06:16:24 EDT 2012

Fix an MSVC warning.

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.

--- a/src/opus_private.h
+++ b/src/opus_private.h
@@ -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 @@
 /* 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);