tests: don't use g_value_set_static_string() for non-static strings
PATCH 1/1 tests: don't use g_value_set_static_string() for non-static strings
From: Bartosz Golaszewski <[email protected]>
As pointed out by Philip Withnall, g_value_set_static_string() must only be used with actual static strings and not with ones whose life-time is tied to that of their owner. Use g_value_set_string() to get the gpiosim properties and rework the existing getter functions returning const gchar * to return the address provided by libgpiosim directly instead of passing through the GObject property path.
--- tests/gpiosim-glib/gpiosim-glib.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-)
tests/gpiosim-glib/gpiosim-glib.c +5 -19
@@ -245,12 +245,11 @@ static void g_gpiosim_chip_get_property(GObject *obj, guint prop_id,switch (prop_id) {case G_GPIOSIM_CHIP_PROP_DEV_PATH : -g_value_set_static_string (val, -gpiosim_bank_get_dev_path (self->bank)); +g_value_set_string (val,gpiosim_bank_get_dev_path (self->bank));break ;case G_GPIOSIM_CHIP_PROP_NAME : -g_value_set_static_string (val, -gpiosim_bank_get_chip_name (self->bank)); +g_value_set_string (val, +gpiosim_bank_get_chip_name (self->bank));break ;default :G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec);
@@ -396,27 +395,14 @@ static void g_gpiosim_chip_init(GPIOSimChip *self) self->hogs =NULL ; } -static const gchar * -g_gpiosim_chip_get_string_prop (GPIOSimChip *self,const gchar *prop) -{ -GValue val =G_VALUE_INIT ; -const gchar *str; - -g_object_get_property (G_OBJECT (self), prop, &val); - str =g_value_get_string (&val); -g_value_unset (&val); - -return str; -} -const gchar *g_gpiosim_chip_get_dev_path (GPIOSimChip *self) { -return g_gpiosim_chip_get_string_prop (self,"dev-path" ); +return gpiosim_bank_get_dev_path (self->bank); }const gchar *g_gpiosim_chip_get_name (GPIOSimChip *self) { -return g_gpiosim_chip_get_string_prop (self,"name" ); +return gpiosim_bank_get_chip_name (self->bank); } GPIOSimValue
Signature · 1 line
2.43.0
Bartosz Golaszewski
AppliedFrom: Bartosz Golaszewski <[email protected]>
Quoted 8 lines · Bartosz Golaszewski
As pointed out by Philip Withnall,
g_value_set_static_string()must only be used with actual static strings and not with ones whose life-time is tied to that of their owner. Useg_value_set_string()to get the gpiosim properties and rework the existing getter functions returning const gchar * to return the address provided by libgpiosim directly instead of passing through the GObject property path.[...]
Applied, thanks!
[1/1] tests: don't use g_value_set_static_string() for non-static strings
commit: 47e14b2cefb5a6d4ae6d7bffd76fa7bd129cd23b
Best regards,
Signature · 1 line
Bartosz Golaszewski <[email protected]>