summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2008-02-12 12:25:34 +0100
committerMartin Mares <mj@ucw.cz>2008-02-12 12:25:34 +0100
commitc953c3094d13235ad97b41cd5b59df1309d9367b (patch)
tree3796289222a35f39fd2f40c378e41656e4ef6973
parent14b85d7c859db7ee7d928ef00694c8c75b79e278 (diff)
downloadpciutils-c953c3094d13235ad97b41cd5b59df1309d9367b.tar.gz
Clean up freeing of the ID tables.
-rw-r--r--TODO2
-rw-r--r--lib/names-hash.c10
-rw-r--r--lib/names-parse.c11
-rw-r--r--lib/names.h1
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 */