[vlc-devel] [PATCH 2/3] control/dbus: dbus_root: simplify PropertiesChangedSignal

Filip Roséen filip at atch.se
Thu May 18 12:02:07 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_root.c | 22 +++-------------------
 1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/modules/control/dbus/dbus_root.c b/modules/control/dbus/dbus_root.c
index 8b0ed71145..c332883730 100644
--- a/modules/control/dbus/dbus_root.c
+++ b/modules/control/dbus/dbus_root.c
@@ -453,8 +453,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_ROOT_INTERFACE;
-    char **ppsz_properties = NULL;
-    int i_properties = 0;
 
     SIGNAL_INIT( DBUS_INTERFACE_PROPERTIES,
                  DBUS_MPRIS_OBJECT_PATH,
@@ -467,23 +465,9 @@ PropertiesChangedSignal( intf_thread_t    *p_intf,
                                            &changed_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, &changed_properties );
-        return DBUS_HANDLER_RESULT_NEED_MEMORY;
-    }
-
-    for( int i = 0; i < i_properties; i++ )
-    {
-        if( !strcmp( ppsz_properties[i], "Fullscreen" ) )
-             AddProperty( p_intf, &changed_properties, "Fullscreen", "b",
-                          MarshalFullscreen );
-        free( ppsz_properties[i] );
-    }
-    free( ppsz_properties );
+    if( vlc_dictionary_has_key( p_changed_properties, "Fullscreen" ) )
+        AddProperty( p_intf, &changed_properties, "Fullscreen", "b",
+                     MarshalFullscreen );
 
     if( !dbus_message_iter_close_container( &args, &changed_properties ) )
         return DBUS_HANDLER_RESULT_NEED_MEMORY;
-- 
2.12.2


More information about the vlc-devel mailing list