From a40e852ed38d04ae1d3818c9d1fc185ff5493938 Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Mon, 31 Oct 2005 18:15:02 +0000
Subject: [PATCH] don't pass short arguments by value, it will cause compiler
 warnings on most platforms about implicit conversions (thanks Luigi!)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6901 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 frame.c                  | 10 +++++++---
 include/asterisk/utils.h | 12 ++++++------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/frame.c b/frame.c
index 5952b1d747..63c6c8c9cd 100755
--- a/frame.c
+++ b/frame.c
@@ -1257,15 +1257,19 @@ int ast_frame_adjust_volume(struct ast_frame *f, int adjustment)
 {
 	int count;
 	short *fdata = f->data;
+	short adjust_value = abs(adjustment);
 
 	if ((f->frametype != AST_FRAME_VOICE) || (f->subclass != AST_FORMAT_SLINEAR))
 		return -1;
 
+	if (!adjustment)
+		return 0;
+
 	for (count = 0; count < f->samples; count++) {
 		if (adjustment > 0) {
-			ast_slinear_saturated_multiply(&fdata[count], abs(adjustment));
+			ast_slinear_saturated_multiply(&fdata[count], &adjust_value);
 		} else if (adjustment < 0) {
-			ast_slinear_saturated_divide(&fdata[count], abs(adjustment));
+			ast_slinear_saturated_divide(&fdata[count], &adjust_value);
 		}
 	}
 
@@ -1289,7 +1293,7 @@ int ast_frame_slinear_sum(struct ast_frame *f1, struct ast_frame *f2)
 	for (count = 0, data1 = f1->data, data2 = f2->data;
 	     count < f1->samples;
 	     count++, data1++, data2++)
-		ast_slinear_saturated_add(data1, *data2);
+		ast_slinear_saturated_add(data1, data2);
 
 	return 0;
 }
diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 2f603a77a2..92a228aae8 100755
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -169,11 +169,11 @@ char *ast_uri_encode(char *string, char *outbuf, int buflen, int doreserved);
  */
 void ast_uri_decode(char *s);
 
-static inline void ast_slinear_saturated_add(short *input, short value)
+static inline void ast_slinear_saturated_add(short *input, short *value)
 {
 	int res;
 
-	res = (int) *input + value;
+	res = (int) *input + *value;
 	if (res > 32767)
 		*input = 32767;
 	else if (res < -32767)
@@ -182,11 +182,11 @@ static inline void ast_slinear_saturated_add(short *input, short value)
 		*input = (short) res;
 }
 	
-static inline void ast_slinear_saturated_multiply(short *input, short value)
+static inline void ast_slinear_saturated_multiply(short *input, short *value)
 {
 	int res;
 
-	res = (int) *input * value;
+	res = (int) *input * *value;
 	if (res > 32767)
 		*input = 32767;
 	else if (res < -32767)
@@ -195,9 +195,9 @@ static inline void ast_slinear_saturated_multiply(short *input, short value)
 		*input = (short) res;
 }
 
-static inline void ast_slinear_saturated_divide(short *input, short value)
+static inline void ast_slinear_saturated_divide(short *input, short *value)
 {
-	*input /= value;
+	*input /= *value;
 }
 
 extern int test_for_thread_safety(void);
-- 
GitLab