mirror of
https://git.proxmox.com/git/libgit2
synced 2026-01-02 22:36:57 +00:00
attrcache: replace existing file entry with git__swap
When doing an upsert of a file, we used to use `git__compare_and_swap`, comparing the entry's file which is to be replaced with itself. This can be more easily formulated by using `git__swap`, which unconditionally replaces the value.
This commit is contained in:
parent
b8ab782a6d
commit
c11510103d
@ -103,8 +103,11 @@ static int attr_cache_upsert(git_attr_cache *cache, git_attr_file *file)
|
||||
GIT_REFCOUNT_OWN(file, entry);
|
||||
GIT_REFCOUNT_INC(file);
|
||||
|
||||
old = git__compare_and_swap(
|
||||
&entry->file[file->source], entry->file[file->source], file);
|
||||
/*
|
||||
* Replace the existing value if another thread has
|
||||
* created it in the meantime.
|
||||
*/
|
||||
old = git__swap(entry->file[file->source], file);
|
||||
|
||||
if (old) {
|
||||
GIT_REFCOUNT_OWN(old, NULL);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user