Re: [PATCH] [alsa-lib] Removed compilation warning from test/namehint.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Apr 10 2017 02:45, soodvarun78@xxxxxxxxx wrote:
From: varun <soodvarun78@xxxxxxxxx>

Changed hint variable from char ** to void ** to match function snd_device_name_hint

Signed-off-by: varun <soodvarun78@xxxxxxxxx>
---
 test/namehint.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

This patch can suppress below compiler warnings:

```
alsa-lib/test$ make namehint
  CC       namehint.o
namehint.c: In function ‘main’:
namehint.c:12:40: warning: passing argument 3 of ‘snd_device_name_hint’ from incompatible pointer type [-Wincompatible-pointer-types]
  err = snd_device_name_hint(-1, iface, &hints);
                                        ^
In file included from ../include/asoundlib.h:58:0,
                 from namehint.c:1:
../include/alsa/control.h:228:5: note: expected ‘void ***’ but argument is of type ‘char ***’
 int snd_device_name_hint(int card, const char *iface, void ***hints);
     ^~~~~~~~~~~~~~~~~~~~
namehint.c:20:28: warning: passing argument 1 of ‘snd_device_name_free_hint’ from incompatible pointer type [-Wincompatible-pointer-types]
  snd_device_name_free_hint(hints);
                            ^~~~~
In file included from ../include/asoundlib.h:58:0,
                 from namehint.c:1:
../include/alsa/control.h:229:5: note: expected ‘void **’ but argument is of type ‘char **’
 int snd_device_name_free_hint(void **hints);
     ^~~~~~~~~~~~~~~~~~~~~~~~~
  CCLD     namehint
```

The combination of 'void ***' and 'char **' variables are also used by 'aplay' in alsa-utils.git, therefore it's not so odd.

Reviewed-by: Takashi Sakamoto <o-takashi@xxxxxxxxxxxxx>

diff --git a/test/namehint.c b/test/namehint.c
index e978d5c..18bad1d 100644
--- a/test/namehint.c
+++ b/test/namehint.c
@@ -4,7 +4,8 @@
 int main(int argc, char *argv[])
 {
 	const char *iface = "pcm";
-	char **hints, **n;
+	void **hints;
+	char **n;
 	int err;

 	if (argc > 1)
@@ -12,7 +13,7 @@ int main(int argc, char *argv[])
 	err = snd_device_name_hint(-1, iface, &hints);
 	if (err < 0)
 		errx(1, "snd_device_name_hint error: %s", snd_strerror(err));
-	n = hints;
+	n = (char **)hints;
 	while (*n != NULL) {
 		printf("%s\n", *n);
 		n++;


Thanks

Takashi Sakamoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux