diff options
author | Martin Mares <mj@ucw.cz> | 2008-02-12 12:25:34 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2008-02-12 12:25:34 +0100 |
commit | c953c3094d13235ad97b41cd5b59df1309d9367b (patch) | |
tree | 3796289222a35f39fd2f40c378e41656e4ef6973 | |
parent | 14b85d7c859db7ee7d928ef00694c8c75b79e278 (diff) | |
download | pciutils-c953c3094d13235ad97b41cd5b59df1309d9367b.tar.gz |
Clean up freeing of the ID tables.
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | lib/names-hash.c | 10 | ||||
-rw-r--r-- | lib/names-parse.c | 11 | ||||
-rw-r--r-- | lib/names.h | 1 |
4 files changed, 12 insertions, 12 deletions
@@ -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 */ |