From: Takashi Sakamoto Date: Sat, 14 Nov 2020 08:28:09 +0000 (+0900) Subject: timer: check whether method argument for GError is available X-Git-Tag: v0.1.99~66 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=a7e4011310e4035e69e4554f06101999a2ff8fc5;p=alsa-gobject.git timer: check whether method argument for GError is available 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 --- diff --git a/src/timer/instance-params.c b/src/timer/instance-params.c index f1b7912..0265a35 100644 --- a/src/timer/instance-params.c +++ b/src/timer/instance-params.c @@ -150,6 +150,8 @@ void alsatimer_instance_params_set_event_filter(ALSATimerInstanceParams *self, g_return_if_fail(entries != NULL); priv = alsatimer_instance_params_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + priv->params.filter = 0; // Clear the event filter. @@ -199,6 +201,8 @@ void alsatimer_instance_params_get_event_filter(ALSATimerInstanceParams *self, g_return_if_fail(entry_count != NULL); priv = alsatimer_instance_params_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + count = 0; filter = priv->params.filter; for (i = 0; i < sizeof(filter) * 8; ++i) { diff --git a/src/timer/query.c b/src/timer/query.c index 62419a4..8778bae 100644 --- a/src/timer/query.c +++ b/src/timer/query.c @@ -70,6 +70,7 @@ void alsatimer_get_sysname(char **sysname, GError **error) char *name; g_return_if_fail(sysname != NULL); + g_return_if_fail(error == NULL || *error == NULL); name = g_strdup(TIMER_SYSNAME_TEMPLATE); @@ -97,6 +98,7 @@ void alsatimer_get_devnode(char **devnode, GError **error) const char *node; g_return_if_fail(devnode != NULL); + g_return_if_fail(error == NULL || *error == NULL); ctx = udev_new(); if (ctx == NULL) { @@ -142,6 +144,7 @@ void alsatimer_get_device_id_list(GList **entries, GError **error) int fd; g_return_if_fail(entries != NULL); + g_return_if_fail(error == NULL || *error == NULL); alsatimer_get_devnode(&devnode, error); if (*error != NULL) @@ -189,6 +192,7 @@ void alsatimer_get_device_info(ALSATimerDeviceId *device_id, int fd; g_return_if_fail(device_id != NULL); + g_return_if_fail(error == NULL || *error == NULL); alsatimer_get_devnode(&devnode, error); if (*error != NULL) @@ -234,6 +238,7 @@ void alsatimer_get_device_status(ALSATimerDeviceId *device_id, g_return_if_fail(device_id != NULL); g_return_if_fail(ALSATIMER_IS_DEVICE_STATUS(*device_status)); + g_return_if_fail(error == NULL || *error == NULL); alsatimer_get_devnode(&devnode, error); if (*error != NULL) @@ -278,6 +283,7 @@ void alsatimer_set_device_params(ALSATimerDeviceId *device_id, g_return_if_fail(device_id != NULL); g_return_if_fail(device_params != NULL); + g_return_if_fail(error == NULL || *error == NULL); alsatimer_get_devnode(&devnode, error); if (*error != NULL) @@ -356,6 +362,8 @@ void alsatimer_get_tstamp_source(int *clock_id, GError **error) gsize size; char *buf; + g_return_if_fail(error == NULL || *error == NULL); + // Count required digits. val = INT_MAX; size = 0; diff --git a/src/timer/user-instance.c b/src/timer/user-instance.c index 45f3524..0ff6c66 100644 --- a/src/timer/user-instance.c +++ b/src/timer/user-instance.c @@ -127,6 +127,8 @@ void alsatimer_user_instance_open(ALSATimerUserInstance *self, gint open_flag, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + alsatimer_get_devnode(&devnode, error); if (*error != NULL) return; @@ -178,6 +180,8 @@ void alsatimer_user_instance_get_protocol_version(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (priv->fd < 0) { generate_error(error, ENXIO); return; @@ -211,6 +215,8 @@ void alsatimer_user_instance_choose_event_data_type(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + tread = (int)event_data_type; if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_TREAD, &tread) < 0) generate_error(error, errno); @@ -241,6 +247,8 @@ void alsatimer_user_instance_attach(ALSATimerUserInstance *self, g_return_if_fail(device_id != NULL); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + sel.id = *device_id; if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_SELECT, &sel) < 0) generate_error(error, errno); @@ -275,6 +283,8 @@ void alsatimer_user_instance_attach_as_slave(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + sel.id.dev_class = SNDRV_TIMER_CLASS_SLAVE; sel.id.dev_sclass = slave_class; sel.id.device = slave_id; @@ -303,6 +313,8 @@ void alsatimer_user_instance_get_info(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + *instance_info = g_object_new(ALSATIMER_TYPE_INSTANCE_INFO, NULL); timer_instance_info_refer_private(*instance_info, &info); @@ -333,6 +345,8 @@ void alsatimer_user_instance_set_params(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + timer_instance_params_refer_private(*instance_params, ¶ms); if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_PARAMS, params) < 0) @@ -360,6 +374,8 @@ void alsatimer_user_instance_get_status(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + g_return_if_fail(ALSATIMER_IS_INSTANCE_STATUS(*instance_status)); timer_instance_status_refer_private(*instance_status, &status); @@ -471,6 +487,8 @@ void alsatimer_user_instance_create_source(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (priv->fd < 0) { generate_error(error, ENXIO); return; @@ -508,6 +526,8 @@ void alsatimer_user_instance_start(ALSATimerUserInstance *self, GError **error) g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_START) < 0) generate_error(error, errno); } @@ -529,6 +549,8 @@ void alsatimer_user_instance_stop(ALSATimerUserInstance *self, GError **error) g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_STOP) < 0) generate_error(error, errno); } @@ -550,6 +572,8 @@ void alsatimer_user_instance_pause(ALSATimerUserInstance *self, GError **error) g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_PAUSE) < 0) generate_error(error, errno); } @@ -572,6 +596,8 @@ void alsatimer_user_instance_continue(ALSATimerUserInstance *self, g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self)); priv = alsatimer_user_instance_get_instance_private(self); + g_return_if_fail(error == NULL || *error == NULL); + if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_CONTINUE) < 0) generate_error(error, errno); }