From c953c3094d13235ad97b41cd5b59df1309d9367b Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 12 Feb 2008 12:25:34 +0100 Subject: [PATCH] Clean up freeing of the ID tables. --- TODO | 2 -- lib/names-hash.c | 10 +--------- lib/names-parse.c | 11 ++++++++++- lib/names.h | 1 + 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/TODO b/TODO index 81053e8..0b13661 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,10 @@ - review class names DNS mode: -- update README - check negative caching - check handling of network errors - try to avoid libresolv.a - replace "Unknown device" with "Device" -- check the logic around id_load_failed Capabilities with partial decoding: - PCIe 2nd set of control/status registers (have spec) diff --git a/lib/names-hash.c b/lib/names-hash.c index d0748c7..33f3c11 100644 --- a/lib/names-hash.c +++ b/lib/names-hash.c @@ -112,12 +112,11 @@ char return NULL; } -static void +void pci_id_hash_free(struct pci_access *a) { pci_mfree(a->id_hash); a->id_hash = NULL; - a->id_cache_status = 0; while (a->current_id_bucket) { struct id_bucket *buck = a->current_id_bucket; @@ -125,10 +124,3 @@ pci_id_hash_free(struct pci_access *a) pci_mfree(buck); } } - -void -pci_free_name_list(struct pci_access *a) -{ - pci_id_cache_flush(a); - pci_id_hash_free(a); -} diff --git a/lib/names-parse.c b/lib/names-parse.c index 71b622f..58ab578 100644 --- a/lib/names-parse.c +++ b/lib/names-parse.c @@ -233,7 +233,16 @@ pci_load_name_list(struct pci_access *a) return 1; } -void pci_set_name_list_path(struct pci_access *a, char *name, int to_be_freed) +void +pci_free_name_list(struct pci_access *a) +{ + pci_id_cache_flush(a); + pci_id_hash_free(a); + a->id_load_failed = 0; +} + +void +pci_set_name_list_path(struct pci_access *a, char *name, int to_be_freed) { if (a->free_id_name) free(a->id_file_name); diff --git a/lib/names.h b/lib/names.h index 1ecea8b..81c373f 100644 --- a/lib/names.h +++ b/lib/names.h @@ -62,6 +62,7 @@ char *pci_id_lookup(struct pci_access *a, int flags, int cat, int id1, int id2, int pci_id_cache_load(struct pci_access *a, int flags); void pci_id_cache_dirty(struct pci_access *a); void pci_id_cache_flush(struct pci_access *a); +void pci_id_hash_free(struct pci_access *a); /* names-dns.c */ -- 2.39.2