| 134 | } |
| 135 | |
| 136 | static void replace_entry(size_t pos, void *data) |
| 137 | { |
| 138 | struct index_state *istate = data; |
| 139 | struct split_index *si = istate->split_index; |
| 140 | struct cache_entry *dst, *src; |
| 141 | |
| 142 | if (pos >= istate->cache_nr) |
| 143 | die("position for replacement %d exceeds base index size %d", |
| 144 | (int)pos, istate->cache_nr); |
| 145 | if (si->nr_replacements >= si->saved_cache_nr) |
| 146 | die("too many replacements (%d vs %d)", |
| 147 | si->nr_replacements, si->saved_cache_nr); |
| 148 | dst = istate->cache[pos]; |
| 149 | if (dst->ce_flags & CE_REMOVE) |
| 150 | die("entry %d is marked as both replaced and deleted", |
| 151 | (int)pos); |
| 152 | src = si->saved_cache[si->nr_replacements]; |
| 153 | if (ce_namelen(src)) |
| 154 | die("corrupt link extension, entry %d should have " |
| 155 | "zero length name", (int)pos); |
| 156 | src->index = pos + 1; |
| 157 | src->ce_flags |= CE_UPDATE_IN_BASE; |
| 158 | src->ce_namelen = dst->ce_namelen; |
| 159 | copy_cache_entry(dst, src); |
| 160 | discard_cache_entry(src); |
| 161 | si->nr_replacements++; |
| 162 | } |
| 163 | |
| 164 | void merge_base_index(struct index_state *istate) |
| 165 | { |
nothing calls this directly
no test coverage detected