]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
rawmidi: add checks for method arguments
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 16 Nov 2020 02:45:41 +0000 (11:45 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Mon, 16 Nov 2020 12:04:53 +0000 (21:04 +0900)
In Rules for use of GError, it's just used for recoverable runtime
error, not for programming error. The invalid arguments are a kind of
programming error.

This commit adds the check for method arguments.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/rawmidi/query.c
src/rawmidi/stream-pair.c

index 8dd3f91c0e2ed480264cb33ab555d55abf8b14de..657594da5222b2518a4e1f9666258eba77ba03af 100644 (file)
@@ -193,7 +193,7 @@ void alsarawmidi_get_device_id_list(guint card_id, guint **entries,
         }
     }
     if (index != count) {
-        generate_error(error, ENOENT);
+        g_warn_if_reached();
         g_free(*entries);
         *entries = NULL;
         goto end;
@@ -225,6 +225,7 @@ void alsarawmidi_get_rawmidi_sysname(guint card_id, guint device_id,
     struct udev *ctx;
     struct udev_device *dev;
 
+    g_return_if_fail(sysname != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     length = strlen(RAWMIDI_SYSNAME_TEMPLATE) + calculate_digits(card_id) +
@@ -272,6 +273,7 @@ void alsarawmidi_get_rawmidi_devnode(guint card_id, guint device_id,
     struct udev_device *dev;
     const char *node;
 
+    g_return_if_fail(devnode != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     length = strlen(RAWMIDI_SYSNAME_TEMPLATE) + calculate_digits(card_id) +
@@ -423,13 +425,9 @@ void alsarawmidi_get_substream_info(guint card_id, guint device_id,
 {
     struct snd_rawmidi_info *info;
 
+    g_return_if_fail(substream_info != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
-    if (substream_info == NULL) {
-        generate_error(error, EINVAL);
-        return;
-    }
-
     *substream_info = g_object_new(ALSARAWMIDI_TYPE_SUBSTREAM_INFO, NULL);
 
     rawmidi_substream_info_refer_private(*substream_info, &info);
index 92f32f5ea47383930b6d27ce4dcffa13a297c744..04fe5d3d73ddcec4e607b29afc5c698f63f744f4 100644 (file)
@@ -188,26 +188,20 @@ void alsarawmidi_stream_pair_open(ALSARawmidiStreamPair *self, guint card_id,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
-
     // The flag is used to attach substreams for each direction.
-    if (access_modes & ~(ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT |
-                         ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT)) {
-        generate_error(error, EINVAL);
-        return;
-    }
+    g_return_if_fail((access_modes & ~(ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT |
+                     ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT)) == 0);
+    g_return_if_fail(error == NULL || *error == NULL);
 
     if ((access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT) &&
-        (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT)) {
+        (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT))
         open_flag = O_RDWR;
-    } else if (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT) {
+    else if (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_OUTPUT)
         open_flag = O_WRONLY;
-    } else if (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT) {
+    else if (access_modes & ALSARAWMIDI_STREAM_PAIR_INFO_FLAG_INPUT)
         open_flag = O_RDONLY;
-    } else {
-        generate_error(error, EINVAL);
-        return;
-    }
+    else
+        g_return_if_reached();
 
     alsarawmidi_get_rawmidi_devnode(card_id, device_id, &devnode, error);
     if (*error != NULL)
@@ -261,6 +255,7 @@ void alsarawmidi_stream_pair_get_protocol_version(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(proto_ver_triplet != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     if (priv->fd < 0) {
@@ -294,6 +289,7 @@ void alsarawmidi_stream_pair_get_substream_info(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(substream_info != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     *substream_info = g_object_new(ALSARAWMIDI_TYPE_SUBSTREAM_INFO, NULL);
@@ -331,6 +327,7 @@ void alsarawmidi_stream_pair_set_substream_params(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(substream_params != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     rawmidi_substream_params_refer_private(substream_params, &params);
@@ -362,9 +359,9 @@ void alsarawmidi_stream_pair_get_substream_status(ALSARawmidiStreamPair *self,
     struct snd_rawmidi_status *status;
 
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
-    g_return_if_fail(substream_status != NULL);
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(substream_status != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     rawmidi_substream_status_refer_private(*substream_status, &status);
@@ -399,6 +396,8 @@ void alsarawmidi_stream_pair_read_from_substream(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(buf != NULL);
+    g_return_if_fail(buf_size != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     len = read(priv->fd, *buf, *buf_size);
@@ -435,6 +434,7 @@ void alsarawmidi_stream_pair_write_to_substream(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(buf != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     len = write(priv->fd, buf, buf_size);
@@ -575,6 +575,7 @@ void alsarawmidi_stream_pair_create_source(ALSARawmidiStreamPair *self,
     g_return_if_fail(ALSARAWMIDI_IS_STREAM_PAIR(self));
     priv = alsarawmidi_stream_pair_get_instance_private(self);
 
+    g_return_if_fail(gsrc != NULL);
     g_return_if_fail(error == NULL || *error == NULL);
 
     if (priv->fd < 0) {