From: Martin Mares Date: Tue, 12 Feb 2008 11:25:34 +0000 (+0100) Subject: Clean up freeing of the ID tables. X-Git-Tag: v3.0.0~1^2~34 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=c953c3094d13235ad97b41cd5b59df1309d9367b;p=pciutils.git Clean up freeing of the ID tables. --- 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 */