All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] alsa-lib: Various portability fixes
@ 2019-06-12  6:08 Michael Forney
  2019-06-12  6:08 ` [PATCH 1/6] Use __func__ instead of __FUNCTION__ Michael Forney
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

Even though alsa-lib doesn't aim for ISO C conformance, hopefully these
changes are uncontroversial enough to be considered anyway.

Michael Forney (6):
  Use __func__ instead of __FUNCTION__
  List cases in range explicitly
  Don't return in a void function
  Make sure parameter qualifiers match between declaration and
    definition
  Remove unused empty struct
  Avoid pointer arithmetic on `void *`

 aserver/aserver.c    |  4 ++--
 include/error.h      |  8 ++++----
 include/local.h      |  4 ++--
 src/conf.c           | 22 ++++++++++++----------
 src/pcm/pcm.c        | 16 ++++++++--------
 src/pcm/pcm_direct.h |  2 --
 src/pcm/pcm_hw.c     |  2 +-
 src/pcm/pcm_rate.c   |  8 ++++----
 src/pcm/pcm_share.c  |  4 ++--
 9 files changed, 35 insertions(+), 35 deletions(-)

-- 
2.20.1

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] Use __func__ instead of __FUNCTION__
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:08 ` [PATCH 2/6] List cases in range explicitly Michael Forney
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

They are equivalent, but __func__ is in C99. __FUNCTION__ exists only
for backwards compatibility with old gcc versions.

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 aserver/aserver.c   | 4 ++--
 include/error.h     | 8 ++++----
 include/local.h     | 4 ++--
 src/pcm/pcm_share.c | 4 ++--
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/aserver/aserver.c b/aserver/aserver.c
index 6d20f330..28387021 100644
--- a/aserver/aserver.c
+++ b/aserver/aserver.c
@@ -39,13 +39,13 @@ char *command;
 
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
 #define ERROR(...) do {\
-	fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __FUNCTION__); \
+	fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __func__); \
 	fprintf(stderr, __VA_ARGS__); \
 	putc('\n', stderr); \
 } while (0)
 #else
 #define ERROR(args...) do {\
-	fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __FUNCTION__); \
+	fprintf(stderr, "%s %s:%i:(%s) ", command, __FILE__, __LINE__, __func__); \
 	fprintf(stderr, ##args); \
 	putc('\n', stderr); \
 } while (0)
diff --git a/include/error.h b/include/error.h
index 9a996aba..7239db85 100644
--- a/include/error.h
+++ b/include/error.h
@@ -61,11 +61,11 @@ extern snd_lib_error_handler_t snd_lib_error;
 extern int snd_lib_error_set_handler(snd_lib_error_handler_t handler);
 
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 95)
-#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, __VA_ARGS__) /**< Shows a sound error message. */
-#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */
+#define SNDERR(...) snd_lib_error(__FILE__, __LINE__, __func__, 0, __VA_ARGS__) /**< Shows a sound error message. */
+#define SYSERR(...) snd_lib_error(__FILE__, __LINE__, __func__, errno, __VA_ARGS__) /**< Shows a system error message (related to \c errno). */
 #else
-#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, 0, ##args) /**< Shows a sound error message. */
-#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __FUNCTION__, errno, ##args) /**< Shows a system error message (related to \c errno). */
+#define SNDERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, 0, ##args) /**< Shows a sound error message. */
+#define SYSERR(args...) snd_lib_error(__FILE__, __LINE__, __func__, errno, ##args) /**< Shows a system error message (related to \c errno). */
 #endif
 
 /** \} */
diff --git a/include/local.h b/include/local.h
index e8390df5..bf19f0f8 100644
--- a/include/local.h
+++ b/include/local.h
@@ -244,8 +244,8 @@ size_t snd_strlcpy(char *dst, const char *src, size_t size);
 #ifndef NDEBUG
 #define CHECK_SANITY(x) x
 extern snd_lib_error_handler_t snd_err_msg;
-#define SNDMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, 0, ##args)
-#define SYSMSG(args...) snd_err_msg(__FILE__, __LINE__, __FUNCTION__, errno, ##args)
+#define SNDMSG(args...) snd_err_msg(__FILE__, __LINE__, __func__, 0, ##args)
+#define SYSMSG(args...) snd_err_msg(__FILE__, __LINE__, __func__, errno, ##args)
 #else
 #define CHECK_SANITY(x) 0 /* not evaluated */
 #define SNDMSG(args...) /* nop */
diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
index 5a540c4f..bff9507d 100644
--- a/src/pcm/pcm_share.c
+++ b/src/pcm/pcm_share.c
@@ -54,11 +54,11 @@ char *snd_pcm_share_slaves_mutex_holder;
 do { \
 	int err = pthread_mutex_trylock(mutex); \
 	if (err < 0) { \
-		fprintf(stderr, "lock " #mutex " is busy (%s): waiting in " __FUNCTION__ "\n", *(mutex##_holder)); \
+		fprintf(stderr, "lock " #mutex " is busy (%s): waiting in " __func__ "\n", *(mutex##_holder)); \
 		pthread_mutex_lock(mutex); \
 		fprintf(stderr, "... got\n"); \
 	} \
-	*(mutex##_holder) = __FUNCTION__; \
+	*(mutex##_holder) = __func__; \
 } while (0)
 
 #define Pthread_mutex_unlock(mutex) \
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] List cases in range explicitly
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
  2019-06-12  6:08 ` [PATCH 1/6] Use __func__ instead of __FUNCTION__ Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:08 ` [PATCH 3/6] Don't return in a void function Michael Forney
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

Case ranges are a GNU extension, and provide only a slight readability
improvement.

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 src/conf.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/conf.c b/src/conf.c
index 3e4b76a3..77fd0da5 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -888,7 +888,8 @@ static int get_quotedchar(input_t *input)
 		return '\r';
 	case 'f':
 		return '\f';
-	case '0' ... '7':
+	case '0': case '1': case '2': case '3':
+	case '4': case '5': case '6': case '7':
 	{
 		int num = c - '0';
 		int i = 1;
@@ -1479,7 +1480,8 @@ static void string_print(char *str, int id, snd_output_t *out)
 	}
 	if (!id) {
 		switch (*p) {
-		case '0' ... '9':
+		case '0': case '1': case '2': case '3': case '4':
+		case '5': case '6': case '7': case '8': case '9':
 		case '-':
 			goto quoted;
 		}
@@ -1488,8 +1490,6 @@ static void string_print(char *str, int id, snd_output_t *out)
 	switch (*p) {
 	case 0:
 		goto nonquoted;
-	case 1 ... 31:
-	case 127 ... 255:
 	case ' ':
 	case '=':
 	case ';':
@@ -1501,6 +1501,8 @@ static void string_print(char *str, int id, snd_output_t *out)
 	case '"':
 		goto quoted;
 	default:
+		if (*p <= 31 || *p >= 127)
+			goto quoted;
 		p++;
 		goto loop;
 	}
@@ -1542,12 +1544,11 @@ static void string_print(char *str, int id, snd_output_t *out)
 			snd_output_putc(out, '\\');
 			snd_output_putc(out, c);
 			break;
-		case 32 ... '\'' - 1:
-		case '\'' + 1 ... 126:
-			snd_output_putc(out, c);
-			break;
 		default:
-			snd_output_printf(out, "\\%04o", c);
+			if (c >= 32 && c <= 126 && c != '\'')
+				snd_output_putc(out, c);
+			else
+				snd_output_printf(out, "\\%04o", c);
 			break;
 		}
 		p++;
@@ -4687,7 +4688,8 @@ static int parse_char(const char **ptr)
 	case 'f':
 		c = '\f';
 		break;
-	case '0' ... '7':
+	case '0': case '1': case '2': case '3':
+	case '4': case '5': case '6': case '7':
 	{
 		int num = c - '0';
 		int i = 1;
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] Don't return in a void function
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
  2019-06-12  6:08 ` [PATCH 1/6] Use __func__ instead of __FUNCTION__ Michael Forney
  2019-06-12  6:08 ` [PATCH 2/6] List cases in range explicitly Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:08 ` [PATCH 4/6] Make sure parameter qualifiers match between declaration and definition Michael Forney
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

A return statement with an expression in a function returning void is
a constraint violation.

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 src/pcm/pcm_hw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
index 77d4dae1..2028790e 100644
--- a/src/pcm/pcm_hw.c
+++ b/src/pcm/pcm_hw.c
@@ -1171,7 +1171,7 @@ static void __fill_chmap_ctl_id(snd_ctl_elem_id_t *id, int dev, int subdev,
 static void fill_chmap_ctl_id(snd_pcm_t *pcm, snd_ctl_elem_id_t *id)
 {
 	snd_pcm_hw_t *hw = pcm->private_data;
-	return __fill_chmap_ctl_id(id, hw->device, hw->subdevice, pcm->stream);
+	__fill_chmap_ctl_id(id, hw->device, hw->subdevice, pcm->stream);
 }
 
 static int is_chmap_type(int type)
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] Make sure parameter qualifiers match between declaration and definition
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
                   ` (2 preceding siblings ...)
  2019-06-12  6:08 ` [PATCH 3/6] Don't return in a void function Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:08 ` [PATCH 5/6] Remove unused empty struct Michael Forney
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 src/pcm/pcm.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index fa51ca99..e0ceccc4 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -1997,7 +1997,7 @@ static const char *const snd_pcm_tstamp_type_names[] = {
  * \param stream PCM stream type
  * \return ascii name of PCM stream type
  */
-const char *snd_pcm_stream_name(snd_pcm_stream_t stream)
+const char *snd_pcm_stream_name(const snd_pcm_stream_t stream)
 {
 	if (stream > SND_PCM_STREAM_LAST)
 		return NULL;
@@ -2009,7 +2009,7 @@ const char *snd_pcm_stream_name(snd_pcm_stream_t stream)
  * \param acc PCM access type
  * \return ascii name of PCM access type
  */
-const char *snd_pcm_access_name(snd_pcm_access_t acc)
+const char *snd_pcm_access_name(const snd_pcm_access_t acc)
 {
 	if (acc > SND_PCM_ACCESS_LAST)
 		return NULL;
@@ -2021,7 +2021,7 @@ const char *snd_pcm_access_name(snd_pcm_access_t acc)
  * \param format PCM sample format
  * \return ascii name of PCM sample format
  */
-const char *snd_pcm_format_name(snd_pcm_format_t format)
+const char *snd_pcm_format_name(const snd_pcm_format_t format)
 {
 	if (format > SND_PCM_FORMAT_LAST)
 		return NULL;
@@ -2033,7 +2033,7 @@ const char *snd_pcm_format_name(snd_pcm_format_t format)
  * \param format PCM sample format
  * \return ascii description of PCM sample format
  */
-const char *snd_pcm_format_description(snd_pcm_format_t format)
+const char *snd_pcm_format_description(const snd_pcm_format_t format)
 {
 	if (format > SND_PCM_FORMAT_LAST)
 		return NULL;
@@ -2072,7 +2072,7 @@ snd_pcm_format_t snd_pcm_format_value(const char* name)
  * \param subformat PCM sample subformat
  * \return ascii name of PCM sample subformat
  */
-const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat)
+const char *snd_pcm_subformat_name(const snd_pcm_subformat_t subformat)
 {
 	if (subformat > SND_PCM_SUBFORMAT_LAST)
 		return NULL;
@@ -2084,7 +2084,7 @@ const char *snd_pcm_subformat_name(snd_pcm_subformat_t subformat)
  * \param subformat PCM sample subformat
  * \return ascii description of PCM sample subformat
  */
-const char *snd_pcm_subformat_description(snd_pcm_subformat_t subformat)
+const char *snd_pcm_subformat_description(const snd_pcm_subformat_t subformat)
 {
 	if (subformat > SND_PCM_SUBFORMAT_LAST)
 		return NULL;
@@ -2128,7 +2128,7 @@ link_warning(snd_pcm_xrun_mode_name, "Warning: xrun_mode is deprecated, consider
  * \param mode PCM tstamp mode
  * \return ascii name of PCM tstamp mode setting
  */
-const char *snd_pcm_tstamp_mode_name(snd_pcm_tstamp_t mode)
+const char *snd_pcm_tstamp_mode_name(const snd_pcm_tstamp_t mode)
 {
 	if (mode > SND_PCM_TSTAMP_LAST)
 		return NULL;
@@ -2152,7 +2152,7 @@ const char *snd_pcm_tstamp_type_name(snd_pcm_tstamp_type_t type)
  * \param state PCM state
  * \return ascii name of PCM state
  */
-const char *snd_pcm_state_name(snd_pcm_state_t state)
+const char *snd_pcm_state_name(const snd_pcm_state_t state)
 {
 	if (state > SND_PCM_STATE_LAST)
 		return NULL;
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] Remove unused empty struct
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
                   ` (3 preceding siblings ...)
  2019-06-12  6:08 ` [PATCH 4/6] Make sure parameter qualifiers match between declaration and definition Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:08 ` [PATCH 6/6] Avoid pointer arithmetic on `void *` Michael Forney
  2019-06-12  6:54 ` [ALSA patch] [PATCH 0/6] alsa-lib: Various portability fixes Takashi Iwai
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 src/pcm/pcm_direct.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/pcm/pcm_direct.h b/src/pcm/pcm_direct.h
index a71aab13..221edbe1 100644
--- a/src/pcm/pcm_direct.h
+++ b/src/pcm/pcm_direct.h
@@ -186,8 +186,6 @@ struct snd_pcm_direct {
 			mix_areas_24_t *remix_areas_24;
 			mix_areas_u8_t *remix_areas_u8;
 		} dmix;
-		struct {
-		} dsnoop;
 		struct {
 			unsigned long long chn_mask;
 		} dshare;
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] Avoid pointer arithmetic on `void *`
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
                   ` (4 preceding siblings ...)
  2019-06-12  6:08 ` [PATCH 5/6] Remove unused empty struct Michael Forney
@ 2019-06-12  6:08 ` Michael Forney
  2019-06-12  6:54 ` [ALSA patch] [PATCH 0/6] alsa-lib: Various portability fixes Takashi Iwai
  6 siblings, 0 replies; 8+ messages in thread
From: Michael Forney @ 2019-06-12  6:08 UTC (permalink / raw
  To: patch; +Cc: alsa-devel

The pointer operand to the binary `+` operator must be to a complete
object type.

Signed-off-by: Michael Forney <mforney@mforney.org>
---
 src/pcm/pcm_rate.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index 5dc8a927..fdcaa8de 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -300,10 +300,10 @@ static int snd_pcm_rate_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
 	rate->sareas = rate->pareas + channels;
 	rate->sareas[0].addr = (char *)rate->pareas[0].addr + ((cwidth * channels * cinfo->period_size) / 8);
 	for (chn = 0; chn < channels; chn++) {
-		rate->pareas[chn].addr = rate->pareas[0].addr + (cwidth * chn * cinfo->period_size) / 8;
+		rate->pareas[chn].addr = (char *)rate->pareas[0].addr + (cwidth * chn * cinfo->period_size) / 8;
 		rate->pareas[chn].first = 0;
 		rate->pareas[chn].step = cwidth;
-		rate->sareas[chn].addr = rate->sareas[0].addr + (swidth * chn * sinfo->period_size) / 8;
+		rate->sareas[chn].addr = (char *)rate->sareas[0].addr + (swidth * chn * sinfo->period_size) / 8;
 		rate->sareas[chn].first = 0;
 		rate->sareas[chn].step = swidth;
 	}
@@ -513,14 +513,14 @@ static void do_convert(const snd_pcm_channel_area_t *dst_areas,
 		const int16_t *src;
 		int16_t *dst;
 		if (! rate->src_buf)
-			src = src_areas->addr + src_offset * 2 * channels;
+			src = (int16_t *)src_areas->addr + src_offset * channels;
 		else {
 			convert_to_s16(rate, rate->src_buf, src_areas, src_offset,
 				       src_frames, channels);
 			src = rate->src_buf;
 		}
 		if (! rate->dst_buf)
-			dst = dst_areas->addr + dst_offset * 2 * channels;
+			dst = (int16_t *)dst_areas->addr + dst_offset * channels;
 		else
 			dst = rate->dst_buf;
 		rate->ops.convert_s16(rate->obj, dst, dst_frames, src, src_frames);
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [ALSA patch] [PATCH 0/6] alsa-lib: Various portability fixes
  2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
                   ` (5 preceding siblings ...)
  2019-06-12  6:08 ` [PATCH 6/6] Avoid pointer arithmetic on `void *` Michael Forney
@ 2019-06-12  6:54 ` Takashi Iwai
  6 siblings, 0 replies; 8+ messages in thread
From: Takashi Iwai @ 2019-06-12  6:54 UTC (permalink / raw
  To: Michael Forney; +Cc: alsa-devel

On Wed, 12 Jun 2019 08:08:08 +0200,
Michael Forney wrote:
> 
> Even though alsa-lib doesn't aim for ISO C conformance, hopefully these
> changes are uncontroversial enough to be considered anyway.
> 
> Michael Forney (6):
>   Use __func__ instead of __FUNCTION__
>   List cases in range explicitly
>   Don't return in a void function
>   Make sure parameter qualifiers match between declaration and
>     definition
>   Remove unused empty struct
>   Avoid pointer arithmetic on `void *`

Thanks, they look good.  Applied all six patches now.


Takashi

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-06-12  6:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-12  6:08 [PATCH 0/6] alsa-lib: Various portability fixes Michael Forney
2019-06-12  6:08 ` [PATCH 1/6] Use __func__ instead of __FUNCTION__ Michael Forney
2019-06-12  6:08 ` [PATCH 2/6] List cases in range explicitly Michael Forney
2019-06-12  6:08 ` [PATCH 3/6] Don't return in a void function Michael Forney
2019-06-12  6:08 ` [PATCH 4/6] Make sure parameter qualifiers match between declaration and definition Michael Forney
2019-06-12  6:08 ` [PATCH 5/6] Remove unused empty struct Michael Forney
2019-06-12  6:08 ` [PATCH 6/6] Avoid pointer arithmetic on `void *` Michael Forney
2019-06-12  6:54 ` [ALSA patch] [PATCH 0/6] alsa-lib: Various portability fixes Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.