When we fail to deserialize job ID, or the current_job_id is overflowed,
we may have jobs with the same ID.
This is paranoia, and just for safety.
Note, we already use hashmap_remove_value() in job_uninstall().
/* j has been merged into a previously installed job */
if (tr->anchor_job == j)
tr->anchor_job = installed_job;
- hashmap_remove(m->jobs, UINT32_TO_PTR(j->id));
+ hashmap_remove_value(m->jobs, UINT32_TO_PTR(j->id), j);
job_free(j);
j = installed_job;
}
rollback:
HASHMAP_FOREACH(j, tr->jobs)
- hashmap_remove(m->jobs, UINT32_TO_PTR(j->id));
+ hashmap_remove_value(m->jobs, UINT32_TO_PTR(j->id), j);
return r;
}