e_dbus: fre(NULL) does work, so del(NULL) should also.
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 31 Aug 2011 13:49:56 +0000 (13:49 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 31 Aug 2011 13:49:56 +0000 (13:49 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@63034 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/dbus/e_dbus_signal.c

index 36c6565..8d2fd61 100644 (file)
@@ -213,42 +213,44 @@ static int e_dbus_handler_deletions = 0;
 EAPI void
 e_dbus_signal_handler_del(E_DBus_Connection *conn, E_DBus_Signal_Handler *sh)
 {
-  char match[DBUS_MAXIMUM_MATCH_RULE_LENGTH];
-  int len, sender_len, path_len, interface_len, member_len;
+   char match[DBUS_MAXIMUM_MATCH_RULE_LENGTH];
+   int len, sender_len, path_len, interface_len, member_len;
+
+   if (!sh) return ;
 
    if (sh->get_name_owner_pending)
      {
         dbus_pending_call_cancel(sh->get_name_owner_pending);
         sh->get_name_owner_pending = NULL;
      }
-  sh->delete_me = 1;
-  if (e_dbus_idler_active)
-  {
-    e_dbus_handler_deletions = 1;
-    return;
-  }
+   sh->delete_me = 1;
+   if (e_dbus_idler_active)
+     {
+        e_dbus_handler_deletions = 1;
+        return;
+     }
 
-  strcpy(match, "type='signal'");
-  len = sizeof("type='signal'") - 1;
+   strcpy(match, "type='signal'");
+   len = sizeof("type='signal'") - 1;
 
 #define ADD_MATCH_PIECE(PIECE)                                         \
-  do {                                                                 \
-     PIECE ## _len = sh->PIECE ? strlen(sh->PIECE) : 0;                        \
-     if (!_match_append(match, sizeof(match), &len, #PIECE, sizeof(#PIECE) - 1, sh->PIECE, PIECE ## _len)) \
-       return;                                                         \
-  } while (0)
-
-  ADD_MATCH_PIECE(sender);
-  ADD_MATCH_PIECE(path);
-  ADD_MATCH_PIECE(interface);
-  ADD_MATCH_PIECE(member);
+   do {                                                                        \
+      PIECE ## _len = sh->PIECE ? strlen(sh->PIECE) : 0;                \
+      if (!_match_append(match, sizeof(match), &len, #PIECE, sizeof(#PIECE) - 1, sh->PIECE, PIECE ## _len)) \
+        return;                                                                \
+   } while (0)
+
+   ADD_MATCH_PIECE(sender);
+   ADD_MATCH_PIECE(path);
+   ADD_MATCH_PIECE(interface);
+   ADD_MATCH_PIECE(member);
 #undef ADD_MATCH_PIECE
 
-  dbus_bus_remove_match(conn->conn, match, NULL);
+   dbus_bus_remove_match(conn->conn, match, NULL);
 
-  if (!conn->signal_handlers) return;
-  conn->signal_handlers = eina_list_remove(conn->signal_handlers, sh);
-  e_dbus_signal_handler_free(sh);
+   if (!conn->signal_handlers) return;
+   conn->signal_handlers = eina_list_remove(conn->signal_handlers, sh);
+   e_dbus_signal_handler_free(sh);
 }
 
 static void