X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=sub-process.c;h=1b1af9dcbd95990dfd9d0ef11471f766a6015a80;hb=126c1ccefbeec2b3ba368146f057054352484ef4;hp=3f4af935557c5ee22b0b1b9b43d2778161210765;hpb=fe048e4fd905e5c45b07381339ef627f57cf0822;p=thirdparty%2Fgit.git diff --git a/sub-process.c b/sub-process.c index 3f4af93555..1b1af9dcbd 100644 --- a/sub-process.c +++ b/sub-process.c @@ -6,12 +6,14 @@ #include "pkt-line.h" int cmd2process_cmp(const void *unused_cmp_data, - const void *entry, - const void *entry_or_key, + const struct hashmap_entry *eptr, + const struct hashmap_entry *entry_or_key, const void *unused_keydata) { - const struct subprocess_entry *e1 = entry; - const struct subprocess_entry *e2 = entry_or_key; + const struct subprocess_entry *e1, *e2; + + e1 = container_of(eptr, const struct subprocess_entry, ent); + e2 = container_of(entry_or_key, const struct subprocess_entry, ent); return strcmp(e1->cmd, e2->cmd); } @@ -20,9 +22,9 @@ struct subprocess_entry *subprocess_find_entry(struct hashmap *hashmap, const ch { struct subprocess_entry key; - hashmap_entry_init(&key, strhash(cmd)); + hashmap_entry_init(&key.ent, strhash(cmd)); key.cmd = cmd; - return hashmap_get(hashmap, &key, NULL); + return hashmap_get_entry(hashmap, &key, ent, NULL); } int subprocess_read_status(int fd, struct strbuf *status) @@ -58,7 +60,7 @@ void subprocess_stop(struct hashmap *hashmap, struct subprocess_entry *entry) kill(entry->process.pid, SIGTERM); finish_command(&entry->process); - hashmap_remove(hashmap, entry, NULL); + hashmap_remove(hashmap, &entry->ent, NULL); } static void subprocess_exit_handler(struct child_process *process) @@ -96,7 +98,7 @@ int subprocess_start(struct hashmap *hashmap, struct subprocess_entry *entry, co return err; } - hashmap_entry_init(entry, strhash(cmd)); + hashmap_entry_init(&entry->ent, strhash(cmd)); err = startfn(entry); if (err) { @@ -105,7 +107,7 @@ int subprocess_start(struct hashmap *hashmap, struct subprocess_entry *entry, co return err; } - hashmap_add(hashmap, entry); + hashmap_add(hashmap, &entry->ent); return 0; }