don't pass short arguments by value, it will cause compiler warnings on most platform...
authorKevin P. Fleming <kpfleming@digium.com>
Mon, 31 Oct 2005 18:15:02 +0000 (18:15 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Mon, 31 Oct 2005 18:15:02 +0000 (18:15 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6901 65c4cc65-6c06-0410-ace0-fbb531ad65f3

frame.c
include/asterisk/utils.h

diff --git a/frame.c b/frame.c
index 5952b1d..63c6c8c 100755 (executable)
--- 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;
 }
index 2f603a7..92a228a 100755 (executable)
@@ -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);