]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
ctl: check whether method argument for GError is available
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 13 Nov 2020 07:26:26 +0000 (16:26 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Fri, 13 Nov 2020 23:30:49 +0000 (08:30 +0900)
In Rules for use of GError, the check of arguments for GError may be
preferable to avoid to unexpected function call.

This commit adds the check.

Reference: https://developer.gnome.org/glib/stable/glib-Error-Reporting.html
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/ctl/card.c
src/ctl/elem-info.c
src/ctl/query.c

index 42534a2966a352624a5a195939c74f9100e672b6..32c277da02b49bcee372cae2c916f4743b767bd6 100644 (file)
@@ -185,6 +185,8 @@ void alsactl_card_open(ALSACtlCard *self, guint card_id, gint open_flag,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     alsactl_get_control_devnode(card_id, &devnode, error);
     if (*error != NULL)
         return;
@@ -233,6 +235,8 @@ void alsactl_card_get_protocol_version(ALSACtlCard *self,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->fd < 0) {
         generate_error(error, ENXIO);
         return;
@@ -261,6 +265,8 @@ void alsactl_card_get_info(ALSACtlCard *self, ALSACtlCardInfo **card_info,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     *card_info = g_object_new(ALSACTL_TYPE_CARD_INFO, NULL);
 
     ctl_card_info_refer_private(*card_info, &info);
@@ -341,6 +347,8 @@ void alsactl_card_get_elem_id_list(ALSACtlCard *self, GList **entries,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     allocate_elem_ids(priv->fd, &list, error);
     if (*error != NULL)
         return;
@@ -376,6 +384,8 @@ void alsactl_card_lock_elem(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (lock)
         ret = ioctl(priv->fd, SNDRV_CTL_IOCTL_ELEM_LOCK, elem_id);
     else
@@ -433,6 +443,8 @@ void alsactl_card_get_elem_info(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(elem_id != NULL);
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     *elem_info = g_object_new(ALSACTL_TYPE_ELEM_INFO, NULL);
     ctl_elem_info_refer_private(*elem_info, &info);
 
@@ -501,6 +513,8 @@ void alsactl_card_write_elem_tlv(ALSACtlCard *self,
     g_return_if_fail(elem_id != NULL);
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     // At least two quadlets should be included for type and length.
     if (container == NULL || container_count < 2) {
         generate_error(error, EINVAL);
@@ -547,6 +561,8 @@ void alsactl_card_read_elem_tlv(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(elem_id != NULL);
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     // At least two quadlets should be included for type and length.
     if (*container == NULL || *container_count < 2) {
         generate_error(error, EINVAL);
@@ -596,6 +612,8 @@ void alsactl_card_command_elem_tlv(ALSACtlCard *self,
     g_return_if_fail(elem_id != NULL);
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     // At least two quadlets should be included for type and length.
     if (*container == NULL || *container_count < 2) {
         generate_error(error, EINVAL);
@@ -689,8 +707,7 @@ static void add_or_replace_elems(int fd, const ALSACtlElemId *elem_id,
         break;
     }
     default:
-        generate_error(error, ENXIO);
-        return;
+        g_return_if_reached();
     }
 
     info->id = *elem_id;
@@ -741,6 +758,8 @@ void alsactl_card_add_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(elem_info));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     add_or_replace_elems(priv->fd, elem_id, elem_count, elem_info, FALSE,
                          entries, error);
 }
@@ -770,6 +789,8 @@ void alsactl_card_replace_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(elem_info));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     add_or_replace_elems(priv->fd, elem_id, elem_count, elem_info, TRUE,
                          entries, error);
 }
@@ -794,6 +815,8 @@ void alsactl_card_remove_elems(ALSACtlCard *self, const ALSACtlElemId *elem_id,
     g_return_if_fail(elem_id != NULL);
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (ioctl(priv->fd, SNDRV_CTL_IOCTL_ELEM_REMOVE, elem_id) < 0)
         generate_error(error, errno);
 }
@@ -822,6 +845,8 @@ void alsactl_card_write_elem_value(ALSACtlCard *self,
     g_return_if_fail(elem_id != NULL);
     g_return_if_fail(ALSACTL_IS_ELEM_VALUE(elem_value));
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     ctl_elem_value_refer_private((ALSACtlElemValue *)elem_value, &value);
     value->id = *elem_id;
 
@@ -854,6 +879,8 @@ void alsactl_card_read_elem_value(ALSACtlCard *self,
     g_return_if_fail(elem_id != NULL);
     g_return_if_fail(ALSACTL_IS_ELEM_VALUE(*elem_value));
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     ctl_elem_value_refer_private(*elem_value, &value);
     value->id = *elem_id;
 
@@ -975,6 +1002,8 @@ void alsactl_card_create_source(ALSACtlCard *self, GSource **gsrc,
     g_return_if_fail(ALSACTL_IS_CARD(self));
     priv = alsactl_card_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->fd < 0) {
         generate_error(error, ENXIO);
         return;
index 4576443622dd0c4ebf3bd35d8900955426fc4ccc..60aee6d338477ac9d55608394dea8417907abe45 100644 (file)
@@ -164,6 +164,8 @@ static void alsactl_elem_info_init(ALSACtlElemInfo *self)
  */
 ALSACtlElemInfo *alsactl_elem_info_new(ALSACtlElemType elem_type, GError **error)
 {
+    g_return_val_if_fail(error == NULL || *error == NULL, NULL);
+
     switch (elem_type) {
     case ALSACTL_ELEM_TYPE_BOOLEAN:
     case ALSACTL_ELEM_TYPE_INTEGER:
@@ -200,6 +202,8 @@ void alsactl_elem_info_get_int_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_INTEGER) {
         generate_error(error, ENXIO);
         return;
@@ -232,6 +236,8 @@ void alsactl_elem_info_set_int_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_INTEGER) {
         generate_error(error, ENXIO);
         return;
@@ -262,6 +268,8 @@ void alsactl_elem_info_get_int64_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_INTEGER64) {
         generate_error(error, ENXIO);
         return;
@@ -294,6 +302,8 @@ void alsactl_elem_info_set_int64_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_INTEGER64) {
         generate_error(error, ENXIO);
         return;
@@ -323,6 +333,8 @@ void alsactl_elem_info_get_enum_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_ENUMERATED) {
         generate_error(error, ENXIO);
         return;
@@ -350,6 +362,8 @@ void alsactl_elem_info_set_enum_data(ALSACtlElemInfo *self,
     g_return_if_fail(ALSACTL_IS_ELEM_INFO(self));
     priv = alsactl_elem_info_get_instance_private(self);
 
+    g_return_if_fail(error == NULL || *error == NULL);
+
     if (priv->info.type != SNDRV_CTL_ELEM_TYPE_ENUMERATED) {
         generate_error(error, ENXIO);
         return;
index 4bec20d25fd7c178dedec32fa89cdfa84a8a877b..2d9db7c1f8c320887ed9d427f6dc9e95e4461c9b 100644 (file)
@@ -127,6 +127,7 @@ void alsactl_get_card_id_list(guint **entries, gsize *entry_count,
         generate_error(error, EINVAL);
         return;
     }
+    g_return_if_fail(error == NULL || *error == NULL);
 
     prepare_udev_enum(&enumerator, error);
     if (enumerator == NULL)
@@ -240,6 +241,7 @@ void alsactl_get_card_sysname(guint card_id, char **sysname, GError **error)
     char *name;
 
     g_return_if_fail(sysname != NULL);
+    g_return_if_fail(error == NULL || *error == NULL);
 
     allocate_sysname(&name, CARD_SYSNAME_TEMPLATE, card_id, error);
     if (*error != NULL)
@@ -269,6 +271,7 @@ void alsactl_get_control_sysname(guint card_id, char **sysname, GError **error)
     char *name;
 
     g_return_if_fail(sysname != NULL);
+    g_return_if_fail(error == NULL || *error == NULL);
 
     allocate_sysname(&name, CONTROL_SYSNAME_TEMPLATE, card_id, error);
     if (*error != NULL)
@@ -301,6 +304,7 @@ void alsactl_get_control_devnode(guint card_id, char **devnode, GError **error)
     const char *node;
 
     g_return_if_fail(devnode != NULL);
+    g_return_if_fail(error == NULL || *error == NULL);
 
     allocate_sysname(&sysname, CONTROL_SYSNAME_TEMPLATE, card_id, error);
     if (*error != NULL)