[vlc-devel] [PATCH 3/3] control/dbus: dbus_tracklist: simplify PropertiesChangedSignal
Filip Roséen
filip at atch.se
Thu May 18 12:02:08 CEST 2017
There is no need to query all keys when we are only interested in the
presence of a single one; these changes simplify the implementation to
properly reflect the intent.
---
modules/control/dbus/dbus_tracklist.c | 25 ++++---------------------
1 file changed, 4 insertions(+), 21 deletions(-)
diff --git a/modules/control/dbus/dbus_tracklist.c b/modules/control/dbus/dbus_tracklist.c
index 6dedc1b750..0f3676ff8d 100644
--- a/modules/control/dbus/dbus_tracklist.c
+++ b/modules/control/dbus/dbus_tracklist.c
@@ -464,8 +464,6 @@ PropertiesChangedSignal( intf_thread_t *p_intf,
DBusConnection *p_conn = p_intf->p_sys->p_conn;
DBusMessageIter changed_properties, invalidated_properties;
const char *psz_interface_name = DBUS_MPRIS_TRACKLIST_INTERFACE;
- char **ppsz_properties = NULL;
- int i_properties = 0;
SIGNAL_INIT( DBUS_INTERFACE_PROPERTIES,
DBUS_MPRIS_OBJECT_PATH,
@@ -487,26 +485,11 @@ PropertiesChangedSignal( intf_thread_t *p_intf,
&invalidated_properties )) )
return DBUS_HANDLER_RESULT_NEED_MEMORY;
- i_properties = vlc_dictionary_keys_count( p_changed_properties );
- ppsz_properties = vlc_dictionary_all_keys( p_changed_properties );
- if( unlikely(!ppsz_properties) )
- {
- dbus_message_iter_abandon_container( &args, &invalidated_properties );
- return DBUS_HANDLER_RESULT_NEED_MEMORY;
- }
-
- for( int i = 0; i < i_properties; i++ )
- {
- if( !strcmp( ppsz_properties[i], "Tracks" ) )
- dbus_message_iter_append_basic( &invalidated_properties,
- DBUS_TYPE_STRING,
- &ppsz_properties[i] );
-
- free( ppsz_properties[i] );
- }
-
- free( ppsz_properties );
+ if( vlc_dictionary_has_key( p_changed_properties, "Tracks" ) )
+ dbus_message_iter_append_basic( &invalidated_properties,
+ DBUS_TYPE_STRING,
+ &(char const*){ "Tracks" } );
if( unlikely(!dbus_message_iter_close_container( &args,
&invalidated_properties )) )
--
2.12.2
More information about the vlc-devel
mailing list