summaryrefslogtreecommitdiff
path: root/common_audio/signal_processing
diff options
context:
space:
mode:
authorkma@webrtc.org <kma@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2012-10-30 01:19:42 +0000
committerkma@webrtc.org <kma@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2012-10-30 01:19:42 +0000
commit8a560a765a93e92c19e0592b37bf20b356cbe536 (patch)
tree633b4c9e1a49456e41c2cb3a60f24467428eb517 /common_audio/signal_processing
parente2a1a9ea992a51b58af770aada5acf6152a929f1 (diff)
downloadwebrtc-8a560a765a93e92c19e0592b37bf20b356cbe536.tar.gz
Work around with issue 971 (signal_processing_unittests fails memcheck when compiled with GCC 4.6).
Review URL: https://webrtc-codereview.appspot.com/935008 git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@3017 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'common_audio/signal_processing')
-rw-r--r--common_audio/signal_processing/include/spl_inl.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/common_audio/signal_processing/include/spl_inl.h b/common_audio/signal_processing/include/spl_inl.h
index 1cde181b..622b5f7f 100644
--- a/common_audio/signal_processing/include/spl_inl.h
+++ b/common_audio/signal_processing/include/spl_inl.h
@@ -60,7 +60,12 @@ static __inline WebRtc_Word16 WebRtcSpl_GetSizeInBits(WebRtc_UWord32 n) {
static __inline int WebRtcSpl_NormW32(WebRtc_Word32 a) {
int zeros;
- if (a <= 0) a ^= 0xFFFFFFFF;
+ if (a == 0) {
+ return 0;
+ }
+ else if (a < 0) {
+ a = ~a;
+ }
if (!(0xFFFF8000 & a)) {
zeros = 16;
@@ -96,7 +101,12 @@ static __inline int WebRtcSpl_NormU32(WebRtc_UWord32 a) {
static __inline int WebRtcSpl_NormW16(WebRtc_Word16 a) {
int zeros;
- if (a <= 0) a ^= 0xFFFF;
+ if (a == 0) {
+ return 0;
+ }
+ else if (a < 0) {
+ a = ~a;
+ }
if (!(0xFF80 & a)) {
zeros = 8;