X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=read-cache.c;h=53f1da815bc2c23b25894663fa2cac17b08e64b2;hb=a31c6d022e2435a514fcc8ca57f9995c4376a986;hp=4b668be47d378d3127230974613db5e0db19d806;hpb=bb233d690a9782e1570dc93ead2bf04aaca7cfe4;p=git.git diff --git a/read-cache.c b/read-cache.c index 4b668be4..53f1da81 100644 --- a/read-cache.c +++ b/read-cache.c @@ -87,7 +87,7 @@ int cache_name_pos(const char *name, int namelen) } /* Remove entry, return true if there are more entries to go.. */ -static int remove_entry_at(int pos) +int remove_entry_at(int pos) { active_nr--; if (pos >= active_nr) @@ -106,7 +106,7 @@ int remove_file_from_cache(char *path) return 0; } -static int same_name(struct cache_entry *a, struct cache_entry *b) +int same_name(struct cache_entry *a, struct cache_entry *b) { int len = ce_namelen(a); return ce_namelen(b) == len && !memcmp(a->name, b->name, len); @@ -143,7 +143,7 @@ int add_cache_entry(struct cache_entry *ce, int ok_to_add) /* Make sure the array is big enough .. */ if (active_nr == active_alloc) { active_alloc = alloc_nr(active_alloc); - active_cache = realloc(active_cache, active_alloc * sizeof(struct cache_entry *)); + active_cache = xrealloc(active_cache, active_alloc * sizeof(struct cache_entry *)); } /* Add it in.. */ @@ -198,7 +198,7 @@ int read_cache(void) size = st.st_size; errno = EINVAL; if (size >= sizeof(struct cache_header) + 20) - map = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); + map = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); } close(fd); if (-1 == (int)(long)map)