diff options
-rw-r--r-- | hcid/adapter.c | 11 | ||||
-rw-r--r-- | hcid/adapter.h | 1 | ||||
-rw-r--r-- | hcid/manager.c | 5 |
3 files changed, 14 insertions, 3 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c index b82623d6..d5bed46c 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -2581,3 +2581,14 @@ const gchar *adapter_get_address(struct adapter *adapter) return adapter->address; } + +void adapter_free(struct adapter *adapter) +{ + if (!adapter) + return; + + g_free(adapter->path); + g_free(adapter); + + return; +} diff --git a/hcid/adapter.h b/hcid/adapter.h index e83d808f..d27f85ef 100644 --- a/hcid/adapter.h +++ b/hcid/adapter.h @@ -178,3 +178,4 @@ struct adapter *adapter_create(int id); uint16_t adapter_get_dev_id(struct adapter *adapter); const gchar *adapter_get_path(struct adapter *adapter); const gchar *adapter_get_address(struct adapter *adapter); +void adapter_free(struct adapter *adapter); diff --git a/hcid/manager.c b/hcid/manager.c index 03b19848..4f638566 100644 --- a/hcid/manager.c +++ b/hcid/manager.c @@ -452,7 +452,7 @@ int manager_register_adapter(int id) if (!adapter_init(connection, path, adapter)) { error("Adapter interface init failed on path %s", path); - g_free(adapter); + adapter_free(adapter); return -1; } @@ -488,8 +488,7 @@ int manager_unregister_adapter(int id) return -1; } - g_free(path); - g_free(adapter); + adapter_free(adapter); return 0; } |