gboolean g_dbus_unregister_interface(DBusConnection *connection, const char *path, const char *name) { struct generic_data *data = NULL; if (path == NULL) return FALSE; if (dbus_connection_get_object_path_data(connection, path, (void *) &data) == FALSE) return FALSE; if (data == NULL) return FALSE; if (remove_interface(data, name) == FALSE) return FALSE; g_free(data->introspect); data->introspect = NULL; object_path_unref(connection, path); return TRUE; }
int supplicant_stop(struct connman_device *device) { int index = connman_device_get_index(device); struct supplicant_task *task; _DBG_SUPPLICANT("device %p", device); task = find_task_by_index(index); if (task == NULL) return -ENODEV; g_free(task->range); task_list = g_slist_remove(task_list, task); if (task->scan_call != NULL) { dbus_pending_call_cancel(task->scan_call); task->scan_call = NULL; } if (task->result_call != NULL) { dbus_pending_call_cancel(task->result_call); task->result_call = NULL; } if (task->scanning == TRUE) connman_device_set_scanning(task->device, FALSE); remove_network(task); disconnect_network(task); return remove_interface(task); }
/*! This is called whenever a device interface is being removed. We will get the corresponding Interface, and remove it. */ void interface_removed_device_interface(net_device_interface* deviceInterface) { RecursiveLocker locker(sLock); Interface* interface = find_interface(deviceInterface->device->name); if (interface != NULL) remove_interface(interface); }
/** * Perform the optimization. */ void OptimizationImpl::do_optimize(DexType* intf, SingleImplData& data) { rewrite_type_refs(intf, data); rewrite_field_defs(intf, data); rewrite_field_refs(intf, data); rewrite_method_defs(intf, data); rewrite_method_refs(intf, data); rewrite_interface_methods(intf, data); remove_interface(intf, data); }
static void object_path_unref(DBusConnection *connection, const char *path) { struct generic_data *data = NULL; if (dbus_connection_get_object_path_data(connection, path, (void *) &data) == FALSE) return; if (data == NULL) return; data->refcount--; if (data->refcount > 0) return; remove_interface(data, DBUS_INTERFACE_INTROSPECTABLE); remove_interface(data, DBUS_INTERFACE_PROPERTIES); invalidate_parent_data(data->conn, data->path); dbus_connection_unregister_object_path(data->conn, data->path); }
gboolean unregister_dbus_interface(DBusConnection *connection, const char *path, const char *name) { struct generic_data *data = NULL; LOG("unregister_dbus_interface"); if (path == NULL) return FALSE; if (dbus_connection_get_object_path_data(connection, path, (void *) &data) == FALSE) return FALSE; if (data == NULL) return FALSE; if (remove_interface(data, name) == FALSE) return FALSE; object_path_unref(connection, data->path); return TRUE; }