* [PATCH] Use ALLOC_GROW() instead of inline code @ 2014-02-27 20:45 Dmitry S. Dolzhenko 2014-02-27 22:11 ` Michael Haggerty ` (4 more replies) 0 siblings, 5 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-27 20:45 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@gmail.com> --- attr.c | 7 +------ builtin/pack-objects.c | 7 +------ bundle.c | 6 +----- cache-tree.c | 6 +----- commit.c | 8 ++------ diff.c | 12 ++---------- diffcore-rename.c | 12 ++---------- dir.c | 5 +---- patch-ids.c | 5 +---- read-cache.c | 9 ++------- reflog-walk.c | 13 +++---------- replace_object.c | 8 ++------ 12 files changed, 19 insertions(+), 79 deletions(-) diff --git a/attr.c b/attr.c index 8d13d70..734222d 100644 --- a/attr.c +++ b/attr.c @@ -338,12 +338,7 @@ static void handle_attr_line(struct attr_stack *res, a = parse_attr_line(line, src, lineno, macro_ok); if (!a) return; - if (res->alloc <= res->num_matches) { - res->alloc = alloc_nr(res->num_matches); - res->attrs = xrealloc(res->attrs, - sizeof(struct match_attr *) * - res->alloc); - } + ALLOC_GROW(res->attrs, res->num_matches + 1, res->alloc); res->attrs[res->num_matches++] = a; } diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 541667f..92cbce8 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -1156,12 +1156,7 @@ static int check_pbase_path(unsigned hash) if (0 <= pos) return 1; pos = -pos - 1; - if (done_pbase_paths_alloc <= done_pbase_paths_num) { - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); - done_pbase_paths = xrealloc(done_pbase_paths, - done_pbase_paths_alloc * - sizeof(unsigned)); - } + ALLOC_GROW(done_pbase_paths, done_pbase_paths_num + 1, done_pbase_paths_alloc); done_pbase_paths_num++; if (pos < done_pbase_paths_num) memmove(done_pbase_paths + pos + 1, diff --git a/bundle.c b/bundle.c index e99065c..1388a3e 100644 --- a/bundle.c +++ b/bundle.c @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n"; static void add_to_ref_list(const unsigned char *sha1, const char *name, struct ref_list *list) { - if (list->nr + 1 >= list->alloc) { - list->alloc = alloc_nr(list->nr + 1); - list->list = xrealloc(list->list, - list->alloc * sizeof(list->list[0])); - } + ALLOC_GROW(list->list, list->nr + 1, list->alloc); memcpy(list->list[list->nr].sha1, sha1, 20); list->list[list->nr].name = xstrdup(name); list->nr++; diff --git a/cache-tree.c b/cache-tree.c index 0bbec43..30149d1 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -75,11 +75,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it, return NULL; pos = -pos-1; - if (it->subtree_alloc <= it->subtree_nr) { - it->subtree_alloc = alloc_nr(it->subtree_alloc); - it->down = xrealloc(it->down, it->subtree_alloc * - sizeof(*it->down)); - } + ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc); it->subtree_nr++; down = xmalloc(sizeof(*down) + pathlen + 1); diff --git a/commit.c b/commit.c index 6bf4fe0..e004314 100644 --- a/commit.c +++ b/commit.c @@ -147,12 +147,8 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups) return 1; } pos = -pos - 1; - if (commit_graft_alloc <= ++commit_graft_nr) { - commit_graft_alloc = alloc_nr(commit_graft_alloc); - commit_graft = xrealloc(commit_graft, - sizeof(*commit_graft) * - commit_graft_alloc); - } + ALLOC_GROW(commit_graft, commit_graft_nr + 1, commit_graft_alloc); + commit_graft_nr++; if (pos < commit_graft_nr) memmove(commit_graft + pos + 1, commit_graft + pos, diff --git a/diff.c b/diff.c index 8e4a6a9..f5f0fd1 100644 --- a/diff.c +++ b/diff.c @@ -1361,11 +1361,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat, { struct diffstat_file *x; x = xcalloc(sizeof (*x), 1); - if (diffstat->nr == diffstat->alloc) { - diffstat->alloc = alloc_nr(diffstat->alloc); - diffstat->files = xrealloc(diffstat->files, - diffstat->alloc * sizeof(x)); - } + ALLOC_GROW(diffstat->files, diffstat->nr + 1, diffstat->alloc); diffstat->files[diffstat->nr++] = x; if (name_b) { x->from_name = xstrdup(name_a); @@ -3965,11 +3961,7 @@ struct diff_queue_struct diff_queued_diff; void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp) { - if (queue->alloc <= queue->nr) { - queue->alloc = alloc_nr(queue->alloc); - queue->queue = xrealloc(queue->queue, - sizeof(dp) * queue->alloc); - } + ALLOC_GROW(queue->queue, queue->nr + 1, queue->alloc); queue->queue[queue->nr++] = dp; } diff --git a/diffcore-rename.c b/diffcore-rename.c index 6c7a72f..f54d5bf 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -38,11 +38,7 @@ static struct diff_rename_dst *locate_rename_dst(struct diff_filespec *two, if (!insert_ok) return NULL; /* insert to make it at "first" */ - if (rename_dst_alloc <= rename_dst_nr) { - rename_dst_alloc = alloc_nr(rename_dst_alloc); - rename_dst = xrealloc(rename_dst, - rename_dst_alloc * sizeof(*rename_dst)); - } + ALLOC_GROW(rename_dst, rename_dst_nr + 1, rename_dst_alloc); rename_dst_nr++; if (first < rename_dst_nr) memmove(rename_dst + first + 1, rename_dst + first, @@ -82,11 +78,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p) } /* insert to make it at "first" */ - if (rename_src_alloc <= rename_src_nr) { - rename_src_alloc = alloc_nr(rename_src_alloc); - rename_src = xrealloc(rename_src, - rename_src_alloc * sizeof(*rename_src)); - } + ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc); rename_src_nr++; if (first < rename_src_nr) memmove(rename_src + first + 1, rename_src + first, diff --git a/dir.c b/dir.c index b35b633..72f6e2a 100644 --- a/dir.c +++ b/dir.c @@ -1329,13 +1329,10 @@ static struct path_simplify *create_simplify(const char **pathspec) for (nr = 0 ; ; nr++) { const char *match; - if (nr >= alloc) { - alloc = alloc_nr(alloc); - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); - } match = *pathspec++; if (!match) break; + ALLOC_GROW(simplify, nr + 1, alloc); simplify[nr].path = match; simplify[nr].len = simple_length(match); } diff --git a/patch-ids.c b/patch-ids.c index bc8a28f..bf81b92 100644 --- a/patch-ids.c +++ b/patch-ids.c @@ -83,10 +83,7 @@ static struct patch_id *add_commit(struct commit *commit, ent = &bucket->bucket[bucket->nr++]; hashcpy(ent->patch_id, sha1); - if (ids->alloc <= ids->nr) { - ids->alloc = alloc_nr(ids->nr); - ids->table = xrealloc(ids->table, sizeof(ent) * ids->alloc); - } + ALLOC_GROW(ids->table, ids->nr + 1, ids->alloc); if (pos < ids->nr) memmove(ids->table + pos + 1, ids->table + pos, sizeof(ent) * (ids->nr - pos)); diff --git a/read-cache.c b/read-cache.c index 33dd676..e585541 100644 --- a/read-cache.c +++ b/read-cache.c @@ -993,11 +993,7 @@ int add_index_entry(struct index_state *istate, struct cache_entry *ce, int opti } /* Make sure the array is big enough .. */ - if (istate->cache_nr == istate->cache_alloc) { - istate->cache_alloc = alloc_nr(istate->cache_alloc); - istate->cache = xrealloc(istate->cache, - istate->cache_alloc * sizeof(*istate->cache)); - } + ALLOC_GROW(istate->cache, istate->cache_nr + 1, istate->cache_alloc); /* Add it in.. */ istate->cache_nr++; @@ -1466,8 +1462,7 @@ int read_index_from(struct index_state *istate, const char *path) istate->version = ntohl(hdr->hdr_version); istate->cache_nr = ntohl(hdr->hdr_entries); - istate->cache_alloc = alloc_nr(istate->cache_nr); - istate->cache = xcalloc(istate->cache_alloc, sizeof(*istate->cache)); + ALLOC_GROW(istate->cache, istate->cache_nr, istate->cache_alloc); istate->initialized = 1; if (istate->version == 4) diff --git a/reflog-walk.c b/reflog-walk.c index b2fbdb2..879d2ed 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -26,11 +26,7 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1, struct complete_reflogs *array = cb_data; struct reflog_info *item; - if (array->nr >= array->alloc) { - array->alloc = alloc_nr(array->nr + 1); - array->items = xrealloc(array->items, array->alloc * - sizeof(struct reflog_info)); - } + ALLOC_GROW(array->items, array->nr + 1, array->alloc); item = array->items + array->nr; memcpy(item->osha1, osha1, 20); memcpy(item->nsha1, nsha1, 20); @@ -114,11 +110,8 @@ static void add_commit_info(struct commit *commit, void *util, struct commit_info_lifo *lifo) { struct commit_info *info; - if (lifo->nr >= lifo->alloc) { - lifo->alloc = alloc_nr(lifo->nr + 1); - lifo->items = xrealloc(lifo->items, - lifo->alloc * sizeof(struct commit_info)); - } + + ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc); info = lifo->items + lifo->nr; info->commit = commit; info->util = util; diff --git a/replace_object.c b/replace_object.c index cdcaf8c..843deef 100644 --- a/replace_object.c +++ b/replace_object.c @@ -36,12 +36,8 @@ static int register_replace_object(struct replace_object *replace, return 1; } pos = -pos - 1; - if (replace_object_alloc <= ++replace_object_nr) { - replace_object_alloc = alloc_nr(replace_object_alloc); - replace_object = xrealloc(replace_object, - sizeof(*replace_object) * - replace_object_alloc); - } + ALLOC_GROW(replace_object, replace_object_nr + 1, replace_object_alloc); + replace_object_nr++; if (pos < replace_object_nr) memmove(replace_object + pos + 1, replace_object + pos, -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* Re: [PATCH] Use ALLOC_GROW() instead of inline code 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko @ 2014-02-27 22:11 ` Michael Haggerty 2014-02-27 22:44 ` Junio C Hamano ` (3 subsequent siblings) 4 siblings, 0 replies; 42+ messages in thread From: Michael Haggerty @ 2014-02-27 22:11 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: git Dmitry, That's cool; I never imagined there would be so many sites that could be cleaned up in this way. In my opinion, it would be preferable for this patch to be broken into multiple commits, one for each site (or each file, if a file has multiple sites that are logically related). That would make it easier to review the patches and easier to bisect if we later find a problem. Please make sure that you note if there are any sites where the rewritten code doesn't have exactly the same semantics as the original (I don't know if there are sites like this, but if there are...). That helps reviewers focus on the changes that might be "controversial". [Please leave the other microprojects for other students (I just wrote an email on this topic).] Thanks, Michael On 02/27/2014 09:45 PM, Dmitry S. Dolzhenko wrote: > Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@gmail.com> > --- > attr.c | 7 +------ > builtin/pack-objects.c | 7 +------ > bundle.c | 6 +----- > cache-tree.c | 6 +----- > commit.c | 8 ++------ > diff.c | 12 ++---------- > diffcore-rename.c | 12 ++---------- > dir.c | 5 +---- > patch-ids.c | 5 +---- > read-cache.c | 9 ++------- > reflog-walk.c | 13 +++---------- > replace_object.c | 8 ++------ > 12 files changed, 19 insertions(+), 79 deletions(-) > > diff --git a/attr.c b/attr.c > index 8d13d70..734222d 100644 > --- a/attr.c > +++ b/attr.c > @@ -338,12 +338,7 @@ static void handle_attr_line(struct attr_stack *res, > a = parse_attr_line(line, src, lineno, macro_ok); > if (!a) > return; > - if (res->alloc <= res->num_matches) { > - res->alloc = alloc_nr(res->num_matches); > - res->attrs = xrealloc(res->attrs, > - sizeof(struct match_attr *) * > - res->alloc); > - } > + ALLOC_GROW(res->attrs, res->num_matches + 1, res->alloc); > res->attrs[res->num_matches++] = a; > } > > diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c > index 541667f..92cbce8 100644 > --- a/builtin/pack-objects.c > +++ b/builtin/pack-objects.c > @@ -1156,12 +1156,7 @@ static int check_pbase_path(unsigned hash) > if (0 <= pos) > return 1; > pos = -pos - 1; > - if (done_pbase_paths_alloc <= done_pbase_paths_num) { > - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); > - done_pbase_paths = xrealloc(done_pbase_paths, > - done_pbase_paths_alloc * > - sizeof(unsigned)); > - } > + ALLOC_GROW(done_pbase_paths, done_pbase_paths_num + 1, done_pbase_paths_alloc); > done_pbase_paths_num++; > if (pos < done_pbase_paths_num) > memmove(done_pbase_paths + pos + 1, > diff --git a/bundle.c b/bundle.c > index e99065c..1388a3e 100644 > --- a/bundle.c > +++ b/bundle.c > @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n"; > static void add_to_ref_list(const unsigned char *sha1, const char *name, > struct ref_list *list) > { > - if (list->nr + 1 >= list->alloc) { > - list->alloc = alloc_nr(list->nr + 1); > - list->list = xrealloc(list->list, > - list->alloc * sizeof(list->list[0])); > - } > + ALLOC_GROW(list->list, list->nr + 1, list->alloc); > memcpy(list->list[list->nr].sha1, sha1, 20); > list->list[list->nr].name = xstrdup(name); > list->nr++; > diff --git a/cache-tree.c b/cache-tree.c > index 0bbec43..30149d1 100644 > --- a/cache-tree.c > +++ b/cache-tree.c > @@ -75,11 +75,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it, > return NULL; > > pos = -pos-1; > - if (it->subtree_alloc <= it->subtree_nr) { > - it->subtree_alloc = alloc_nr(it->subtree_alloc); > - it->down = xrealloc(it->down, it->subtree_alloc * > - sizeof(*it->down)); > - } > + ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc); > it->subtree_nr++; > > down = xmalloc(sizeof(*down) + pathlen + 1); > diff --git a/commit.c b/commit.c > index 6bf4fe0..e004314 100644 > --- a/commit.c > +++ b/commit.c > @@ -147,12 +147,8 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups) > return 1; > } > pos = -pos - 1; > - if (commit_graft_alloc <= ++commit_graft_nr) { > - commit_graft_alloc = alloc_nr(commit_graft_alloc); > - commit_graft = xrealloc(commit_graft, > - sizeof(*commit_graft) * > - commit_graft_alloc); > - } > + ALLOC_GROW(commit_graft, commit_graft_nr + 1, commit_graft_alloc); > + commit_graft_nr++; > if (pos < commit_graft_nr) > memmove(commit_graft + pos + 1, > commit_graft + pos, > diff --git a/diff.c b/diff.c > index 8e4a6a9..f5f0fd1 100644 > --- a/diff.c > +++ b/diff.c > @@ -1361,11 +1361,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat, > { > struct diffstat_file *x; > x = xcalloc(sizeof (*x), 1); > - if (diffstat->nr == diffstat->alloc) { > - diffstat->alloc = alloc_nr(diffstat->alloc); > - diffstat->files = xrealloc(diffstat->files, > - diffstat->alloc * sizeof(x)); > - } > + ALLOC_GROW(diffstat->files, diffstat->nr + 1, diffstat->alloc); > diffstat->files[diffstat->nr++] = x; > if (name_b) { > x->from_name = xstrdup(name_a); > @@ -3965,11 +3961,7 @@ struct diff_queue_struct diff_queued_diff; > > void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp) > { > - if (queue->alloc <= queue->nr) { > - queue->alloc = alloc_nr(queue->alloc); > - queue->queue = xrealloc(queue->queue, > - sizeof(dp) * queue->alloc); > - } > + ALLOC_GROW(queue->queue, queue->nr + 1, queue->alloc); > queue->queue[queue->nr++] = dp; > } > > diff --git a/diffcore-rename.c b/diffcore-rename.c > index 6c7a72f..f54d5bf 100644 > --- a/diffcore-rename.c > +++ b/diffcore-rename.c > @@ -38,11 +38,7 @@ static struct diff_rename_dst *locate_rename_dst(struct diff_filespec *two, > if (!insert_ok) > return NULL; > /* insert to make it at "first" */ > - if (rename_dst_alloc <= rename_dst_nr) { > - rename_dst_alloc = alloc_nr(rename_dst_alloc); > - rename_dst = xrealloc(rename_dst, > - rename_dst_alloc * sizeof(*rename_dst)); > - } > + ALLOC_GROW(rename_dst, rename_dst_nr + 1, rename_dst_alloc); > rename_dst_nr++; > if (first < rename_dst_nr) > memmove(rename_dst + first + 1, rename_dst + first, > @@ -82,11 +78,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p) > } > > /* insert to make it at "first" */ > - if (rename_src_alloc <= rename_src_nr) { > - rename_src_alloc = alloc_nr(rename_src_alloc); > - rename_src = xrealloc(rename_src, > - rename_src_alloc * sizeof(*rename_src)); > - } > + ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc); > rename_src_nr++; > if (first < rename_src_nr) > memmove(rename_src + first + 1, rename_src + first, > diff --git a/dir.c b/dir.c > index b35b633..72f6e2a 100644 > --- a/dir.c > +++ b/dir.c > @@ -1329,13 +1329,10 @@ static struct path_simplify *create_simplify(const char **pathspec) > > for (nr = 0 ; ; nr++) { > const char *match; > - if (nr >= alloc) { > - alloc = alloc_nr(alloc); > - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); > - } > match = *pathspec++; > if (!match) > break; > + ALLOC_GROW(simplify, nr + 1, alloc); > simplify[nr].path = match; > simplify[nr].len = simple_length(match); > } > diff --git a/patch-ids.c b/patch-ids.c > index bc8a28f..bf81b92 100644 > --- a/patch-ids.c > +++ b/patch-ids.c > @@ -83,10 +83,7 @@ static struct patch_id *add_commit(struct commit *commit, > ent = &bucket->bucket[bucket->nr++]; > hashcpy(ent->patch_id, sha1); > > - if (ids->alloc <= ids->nr) { > - ids->alloc = alloc_nr(ids->nr); > - ids->table = xrealloc(ids->table, sizeof(ent) * ids->alloc); > - } > + ALLOC_GROW(ids->table, ids->nr + 1, ids->alloc); > if (pos < ids->nr) > memmove(ids->table + pos + 1, ids->table + pos, > sizeof(ent) * (ids->nr - pos)); > diff --git a/read-cache.c b/read-cache.c > index 33dd676..e585541 100644 > --- a/read-cache.c > +++ b/read-cache.c > @@ -993,11 +993,7 @@ int add_index_entry(struct index_state *istate, struct cache_entry *ce, int opti > } > > /* Make sure the array is big enough .. */ > - if (istate->cache_nr == istate->cache_alloc) { > - istate->cache_alloc = alloc_nr(istate->cache_alloc); > - istate->cache = xrealloc(istate->cache, > - istate->cache_alloc * sizeof(*istate->cache)); > - } > + ALLOC_GROW(istate->cache, istate->cache_nr + 1, istate->cache_alloc); > > /* Add it in.. */ > istate->cache_nr++; > @@ -1466,8 +1462,7 @@ int read_index_from(struct index_state *istate, const char *path) > > istate->version = ntohl(hdr->hdr_version); > istate->cache_nr = ntohl(hdr->hdr_entries); > - istate->cache_alloc = alloc_nr(istate->cache_nr); > - istate->cache = xcalloc(istate->cache_alloc, sizeof(*istate->cache)); > + ALLOC_GROW(istate->cache, istate->cache_nr, istate->cache_alloc); > istate->initialized = 1; > > if (istate->version == 4) > diff --git a/reflog-walk.c b/reflog-walk.c > index b2fbdb2..879d2ed 100644 > --- a/reflog-walk.c > +++ b/reflog-walk.c > @@ -26,11 +26,7 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1, > struct complete_reflogs *array = cb_data; > struct reflog_info *item; > > - if (array->nr >= array->alloc) { > - array->alloc = alloc_nr(array->nr + 1); > - array->items = xrealloc(array->items, array->alloc * > - sizeof(struct reflog_info)); > - } > + ALLOC_GROW(array->items, array->nr + 1, array->alloc); > item = array->items + array->nr; > memcpy(item->osha1, osha1, 20); > memcpy(item->nsha1, nsha1, 20); > @@ -114,11 +110,8 @@ static void add_commit_info(struct commit *commit, void *util, > struct commit_info_lifo *lifo) > { > struct commit_info *info; > - if (lifo->nr >= lifo->alloc) { > - lifo->alloc = alloc_nr(lifo->nr + 1); > - lifo->items = xrealloc(lifo->items, > - lifo->alloc * sizeof(struct commit_info)); > - } > + > + ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc); > info = lifo->items + lifo->nr; > info->commit = commit; > info->util = util; > diff --git a/replace_object.c b/replace_object.c > index cdcaf8c..843deef 100644 > --- a/replace_object.c > +++ b/replace_object.c > @@ -36,12 +36,8 @@ static int register_replace_object(struct replace_object *replace, > return 1; > } > pos = -pos - 1; > - if (replace_object_alloc <= ++replace_object_nr) { > - replace_object_alloc = alloc_nr(replace_object_alloc); > - replace_object = xrealloc(replace_object, > - sizeof(*replace_object) * > - replace_object_alloc); > - } > + ALLOC_GROW(replace_object, replace_object_nr + 1, replace_object_alloc); > + replace_object_nr++; > if (pos < replace_object_nr) > memmove(replace_object + pos + 1, > replace_object + pos, > -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH] Use ALLOC_GROW() instead of inline code 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko 2014-02-27 22:11 ` Michael Haggerty @ 2014-02-27 22:44 ` Junio C Hamano 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (2 subsequent siblings) 4 siblings, 0 replies; 42+ messages in thread From: Junio C Hamano @ 2014-02-27 22:44 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: git "Dmitry S. Dolzhenko" <dmitrys.dolzhenko@yandex.ru> writes: > diff --git a/dir.c b/dir.c > index b35b633..72f6e2a 100644 > --- a/dir.c > +++ b/dir.c > @@ -1329,13 +1329,10 @@ static struct path_simplify *create_simplify(const char **pathspec) > > for (nr = 0 ; ; nr++) { > const char *match; > - if (nr >= alloc) { > - alloc = alloc_nr(alloc); > - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); > - } > match = *pathspec++; > if (!match) > break; > + ALLOC_GROW(simplify, nr + 1, alloc); > simplify[nr].path = match; > simplify[nr].len = simple_length(match); > } What follows the post-context of this hunk is a NULL termination of the array: simplify[nr].path = NULL; simplify[nr].len = 0; If the first element in pathspec[] were NULL, we set nr to 0, break the loop without calling ALLOC_GROW() even once, and try to NULL terminate simplify[] array after the loop. Don't we try to store to an unallocated piece of memory with this change? > diff --git a/read-cache.c b/read-cache.c > index 33dd676..e585541 100644 > --- a/read-cache.c > +++ b/read-cache.c > @@ -1466,8 +1462,7 @@ int read_index_from(struct index_state *istate, const char *path) > > istate->version = ntohl(hdr->hdr_version); > istate->cache_nr = ntohl(hdr->hdr_entries); > - istate->cache_alloc = alloc_nr(istate->cache_nr); > - istate->cache = xcalloc(istate->cache_alloc, sizeof(*istate->cache)); > + ALLOC_GROW(istate->cache, istate->cache_nr, istate->cache_alloc); This being the initial allocation, not growing reallocation, use of ALLOC_GROW() looks somewhat strange. I know that an realloc from NULL ends up being the same as calloc(), but still. ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko 2014-02-27 22:11 ` Michael Haggerty 2014-02-27 22:44 ` Junio C Hamano @ 2014-02-28 9:29 ` Dmitry S. Dolzhenko 2014-02-28 9:40 ` [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() Dmitry S. Dolzhenko ` (11 more replies) 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko 2014-03-03 14:20 ` [PATCH] " He Sun 4 siblings, 12 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:29 UTC (permalink / raw) To: git Thank you for your remarks. In this patch I tried to take them into account. Dmitry S. Dolzhenko (11): builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() bundle.c: change add_to_ref_list() to use ALLOC_GROW() cache-tree.c: change find_subtree() to use ALLOC_GROW() commit.c: change register_commit_graft() to use ALLOC_GROW() diff.c: use ALLOC_GROW() instead of inline code diffcore-rename.c: use ALLOC_GROW() instead of inline code patch-ids.c: change add_commit() to use ALLOC_GROW() replace_object.c: change register_replace_object() to use ALLOC_GROW() reflog-walk.c: use ALLOC_GROW() instead of inline code dir.c: change create_simplify() to use ALLOC_GROW() attr.c: change handle_attr_line() to use ALLOC_GROW() attr.c | 7 +------ builtin/pack-objects.c | 7 +------ bundle.c | 6 +----- cache-tree.c | 6 +----- commit.c | 8 ++------ diff.c | 12 ++---------- diffcore-rename.c | 12 ++---------- dir.c | 5 +---- patch-ids.c | 5 +---- reflog-walk.c | 13 +++---------- replace_object.c | 8 ++------ 11 files changed, 17 insertions(+), 72 deletions(-) -- 1.8.5.3 ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko @ 2014-02-28 9:40 ` Dmitry S. Dolzhenko 2014-02-28 12:32 ` Duy Nguyen 2014-02-28 9:41 ` [PATCH v2 02/11] bundle.c: change add_to_ref_list() " Dmitry S. Dolzhenko ` (10 subsequent siblings) 11 siblings, 1 reply; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:40 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- builtin/pack-objects.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index c733379..56a6fc8 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -1213,12 +1213,7 @@ static int check_pbase_path(unsigned hash) if (0 <= pos) return 1; pos = -pos - 1; - if (done_pbase_paths_alloc <= done_pbase_paths_num) { - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); - done_pbase_paths = xrealloc(done_pbase_paths, - done_pbase_paths_alloc * - sizeof(unsigned)); - } + ALLOC_GROW(done_pbase_paths, done_pbase_paths_num + 1, done_pbase_paths_alloc); done_pbase_paths_num++; if (pos < done_pbase_paths_num) memmove(done_pbase_paths + pos + 1, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 9:40 ` [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-02-28 12:32 ` Duy Nguyen 2014-02-28 12:40 ` Duy Nguyen 0 siblings, 1 reply; 42+ messages in thread From: Duy Nguyen @ 2014-02-28 12:32 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: Git Mailing List On Fri, Feb 28, 2014 at 4:40 PM, Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> wrote: > Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> > --- > builtin/pack-objects.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c > index c733379..56a6fc8 100644 > --- a/builtin/pack-objects.c > +++ b/builtin/pack-objects.c > @@ -1213,12 +1213,7 @@ static int check_pbase_path(unsigned hash) > if (0 <= pos) > return 1; > pos = -pos - 1; > - if (done_pbase_paths_alloc <= done_pbase_paths_num) { > - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); > - done_pbase_paths = xrealloc(done_pbase_paths, > - done_pbase_paths_alloc * > - sizeof(unsigned)); > - } > + ALLOC_GROW(done_pbase_paths, done_pbase_paths_num + 1, done_pbase_paths_alloc); Not strictly a rule, but I usually try to keep it within 80 columns, unless the surrounding code already breaks it. > done_pbase_paths_num++; If you move this up one line, then you don't have to "+ 1" in ALLOC_GROW > if (pos < done_pbase_paths_num) > memmove(done_pbase_paths + pos + 1, > -- > 1.8.5.3 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Duy ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 12:32 ` Duy Nguyen @ 2014-02-28 12:40 ` Duy Nguyen 2014-02-28 14:20 ` Michael Haggerty 0 siblings, 1 reply; 42+ messages in thread From: Duy Nguyen @ 2014-02-28 12:40 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: Git Mailing List On Fri, Feb 28, 2014 at 7:32 PM, Duy Nguyen <pclouds@gmail.com> wrote: >> done_pbase_paths_num++; > > If you move this up one line, then you don't have to "+ 1" in ALLOC_GROW > same comment to a few other patches. The rest of your series looks good. -- Duy ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 12:40 ` Duy Nguyen @ 2014-02-28 14:20 ` Michael Haggerty 2014-02-28 14:36 ` Duy Nguyen 2014-02-28 19:03 ` Junio C Hamano 0 siblings, 2 replies; 42+ messages in thread From: Michael Haggerty @ 2014-02-28 14:20 UTC (permalink / raw) To: Duy Nguyen; +Cc: Dmitry S. Dolzhenko, Git Mailing List On 02/28/2014 01:40 PM, Duy Nguyen wrote: > On Fri, Feb 28, 2014 at 7:32 PM, Duy Nguyen <pclouds@gmail.com> wrote: >>> done_pbase_paths_num++; >> >> If you move this up one line, then you don't have to "+ 1" in ALLOC_GROW >> > > same comment to a few other patches. The rest of your series looks good. Duy, The example in Documentation/technical/api-allocation-growing.txt does it the same way as Dmitry: ALLOC_GROW(item, nr + 1, alloc); item[nr++] = value you like; The alternative, nr++; ALLOC_GROW(item, nr, alloc); item[nr] = value you like; is an extra line, which is at least a small argument for the variant shown in the docs. (Since ALLOC_GROW is a macro, it is not OK to use "++nr" as its second argument.) Personally, I also prefer the shorter version. The line item[nr++] = value is an easy-to-recognize idiom, and ALLOC_GROW(item, nr + 1, alloc); somehow makes it more transparent by how much more space will be needed. So my vote is that the patches are OK the way Dmitry wrote them (mind, I have only read through 05/11 so far). Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 14:20 ` Michael Haggerty @ 2014-02-28 14:36 ` Duy Nguyen 2014-02-28 19:03 ` Junio C Hamano 1 sibling, 0 replies; 42+ messages in thread From: Duy Nguyen @ 2014-02-28 14:36 UTC (permalink / raw) To: Michael Haggerty; +Cc: Dmitry S. Dolzhenko, Git Mailing List On Fri, Feb 28, 2014 at 9:20 PM, Michael Haggerty <mhagger@alum.mit.edu> wrote: > Duy, > > The example in Documentation/technical/api-allocation-growing.txt does > it the same way as Dmitry: > > ALLOC_GROW(item, nr + 1, alloc); > item[nr++] = value you like; > > The alternative, > > nr++; > ALLOC_GROW(item, nr, alloc); > item[nr] = value you like; > > is an extra line, which is at least a small argument for the variant > shown in the docs. (Since ALLOC_GROW is a macro, it is not OK to use > "++nr" as its second argument.) Personally, I also prefer the shorter > version. The line > > item[nr++] = value > > is an easy-to-recognize idiom, and > > ALLOC_GROW(item, nr + 1, alloc); > > somehow makes it more transparent by how much more space will be needed. > > So my vote is that the patches are OK the way Dmitry wrote them (mind, I > have only read through 05/11 so far). I'm not saying all patches should do nr++; ALLOC_GROW(item, nr, alloc); only those that do if (..) realloc...; nr++; .... should be reordered. Those changes that do item[nr++] = yyy should be kept. Anyway it's just an observation, not something that should block these patches. -- Duy ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 14:20 ` Michael Haggerty 2014-02-28 14:36 ` Duy Nguyen @ 2014-02-28 19:03 ` Junio C Hamano 2014-03-01 7:07 ` Jeff King 1 sibling, 1 reply; 42+ messages in thread From: Junio C Hamano @ 2014-02-28 19:03 UTC (permalink / raw) To: Michael Haggerty; +Cc: Duy Nguyen, Dmitry S. Dolzhenko, Git Mailing List Michael Haggerty <mhagger@alum.mit.edu> writes: > So my vote is that the patches are OK the way Dmitry wrote them (mind, I > have only read through 05/11 so far). Seconded ;-) By the way, I do not like these long subjects. "change" is a redundant word when one sends a patch---as all patches are about changing something. Subject: builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() would be a lot more appropriate for "git shortlog" consumption. ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-02-28 19:03 ` Junio C Hamano @ 2014-03-01 7:07 ` Jeff King 2014-03-03 18:23 ` Junio C Hamano 0 siblings, 1 reply; 42+ messages in thread From: Jeff King @ 2014-03-01 7:07 UTC (permalink / raw) To: Junio C Hamano Cc: Michael Haggerty, Duy Nguyen, Dmitry S. Dolzhenko, Git Mailing List On Fri, Feb 28, 2014 at 11:03:19AM -0800, Junio C Hamano wrote: > Michael Haggerty <mhagger@alum.mit.edu> writes: > > > So my vote is that the patches are OK the way Dmitry wrote them (mind, I > > have only read through 05/11 so far). > > Seconded ;-) > > By the way, I do not like these long subjects. "change" is a > redundant word when one sends a patch---as all patches are about > changing something. > > Subject: builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() > > would be a lot more appropriate for "git shortlog" consumption. I would actually go one step further and drop or shorten the filename in the subject. It is very long, it is already easy to see which file was changed from the diffstat, and it doesn't give any useful context for other parts of the subject. I really like the "foo:" convention for starting a subject line, because it immediately makes clear what area you are working in without having to waste space on English conjunctions or prepositions. But it does not have to be a filename. It can be a subsystem, a command, a function, an area of the project, or anything that gives context to the rest of the line. So I would suggest one of: Subject: use ALLOC_GROW() in check_pbase_path() Talking about the filename is redundant; there's only one check_pbase_path. Subject: check_pbase_path: use ALLOW_GROW Even shorter. Subject: builtin/pack-objects.c: use ALLOC_GROW This one implies to me that the point of the commit is to convert the whole file to use ALLOC_GROW where appropriate, not just that function (even if that function may be the only spot changed). I'd probably not use: Subject: pack-objects: use ALLOC_GROW as the scope is not about the command, but about the C file. I realize that I just bikeshedded on subject lines for half a page, and part of me wants to go kill myself in shame. But I feel like I see the technique misapplied often enough that maybe some guidance is merited. Feel free to ignore. :) -Peff ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() 2014-03-01 7:07 ` Jeff King @ 2014-03-03 18:23 ` Junio C Hamano 0 siblings, 0 replies; 42+ messages in thread From: Junio C Hamano @ 2014-03-03 18:23 UTC (permalink / raw) To: Jeff King Cc: Michael Haggerty, Duy Nguyen, Dmitry S. Dolzhenko, Git Mailing List Jeff King <peff@peff.net> writes: > I realize that I just bikeshedded on subject lines for half a page, and > part of me wants to go kill myself in shame. But I feel like I see the > technique misapplied often enough that maybe some guidance is merited. Thanks. What I queued read like these: $ git shortlog ..dd/use-alloc-grow Dmitry S. Dolzhenko (11): builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() bundle.c: use ALLOC_GROW() in add_to_ref_list() cache-tree.c: use ALLOC_GROW() in find_subtree() commit.c: use ALLOC_GROW() in register_commit_graft() diff.c: use ALLOC_GROW() instead of inline code diffcore-rename.c: use ALLOC_GROW() instead of inline code patch-ids.c: use ALLOC_GROW() in add_commit() replace_object.c: use ALLOC_GROW() in register_replace_object() reflog-walk.c: use ALLOC_GROW() instead of inline code dir.c: use ALLOC_GROW() in create_simplify() attr.c: use ALLOC_GROW() in handle_attr_line() but I tend to agree with you that we can just stop at "use ALLOC_GROW" after the filename. ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v2 02/11] bundle.c: change add_to_ref_list() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko 2014-02-28 9:40 ` [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-02-28 9:41 ` Dmitry S. Dolzhenko 2014-02-28 9:41 ` [PATCH v2 03/11] cache-tree.c: change find_subtree() " Dmitry S. Dolzhenko ` (9 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:41 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- bundle.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bundle.c b/bundle.c index e99065c..1388a3e 100644 --- a/bundle.c +++ b/bundle.c @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n"; static void add_to_ref_list(const unsigned char *sha1, const char *name, struct ref_list *list) { - if (list->nr + 1 >= list->alloc) { - list->alloc = alloc_nr(list->nr + 1); - list->list = xrealloc(list->list, - list->alloc * sizeof(list->list[0])); - } + ALLOC_GROW(list->list, list->nr + 1, list->alloc); memcpy(list->list[list->nr].sha1, sha1, 20); list->list[list->nr].name = xstrdup(name); list->nr++; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 03/11] cache-tree.c: change find_subtree() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko 2014-02-28 9:40 ` [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() Dmitry S. Dolzhenko 2014-02-28 9:41 ` [PATCH v2 02/11] bundle.c: change add_to_ref_list() " Dmitry S. Dolzhenko @ 2014-02-28 9:41 ` Dmitry S. Dolzhenko 2014-02-28 9:42 ` [PATCH v2 04/11] commit.c: change register_commit_graft() " Dmitry S. Dolzhenko ` (8 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:41 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- cache-tree.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cache-tree.c b/cache-tree.c index 0bbec43..30149d1 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -75,11 +75,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it, return NULL; pos = -pos-1; - if (it->subtree_alloc <= it->subtree_nr) { - it->subtree_alloc = alloc_nr(it->subtree_alloc); - it->down = xrealloc(it->down, it->subtree_alloc * - sizeof(*it->down)); - } + ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc); it->subtree_nr++; down = xmalloc(sizeof(*down) + pathlen + 1); -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 04/11] commit.c: change register_commit_graft() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (2 preceding siblings ...) 2014-02-28 9:41 ` [PATCH v2 03/11] cache-tree.c: change find_subtree() " Dmitry S. Dolzhenko @ 2014-02-28 9:42 ` Dmitry S. Dolzhenko 2014-02-28 9:43 ` [PATCH v2 05/11] diff.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko ` (7 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:42 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- commit.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/commit.c b/commit.c index 6bf4fe0..e004314 100644 --- a/commit.c +++ b/commit.c @@ -147,12 +147,8 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups) return 1; } pos = -pos - 1; - if (commit_graft_alloc <= ++commit_graft_nr) { - commit_graft_alloc = alloc_nr(commit_graft_alloc); - commit_graft = xrealloc(commit_graft, - sizeof(*commit_graft) * - commit_graft_alloc); - } + ALLOC_GROW(commit_graft, commit_graft_nr + 1, commit_graft_alloc); + commit_graft_nr++; if (pos < commit_graft_nr) memmove(commit_graft + pos + 1, commit_graft + pos, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 05/11] diff.c: use ALLOC_GROW() instead of inline code 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (3 preceding siblings ...) 2014-02-28 9:42 ` [PATCH v2 04/11] commit.c: change register_commit_graft() " Dmitry S. Dolzhenko @ 2014-02-28 9:43 ` Dmitry S. Dolzhenko 2014-02-28 9:44 ` [PATCH v2 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko ` (6 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:43 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- diff.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/diff.c b/diff.c index e800666..aebdfda 100644 --- a/diff.c +++ b/diff.c @@ -1361,11 +1361,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat, { struct diffstat_file *x; x = xcalloc(sizeof (*x), 1); - if (diffstat->nr == diffstat->alloc) { - diffstat->alloc = alloc_nr(diffstat->alloc); - diffstat->files = xrealloc(diffstat->files, - diffstat->alloc * sizeof(x)); - } + ALLOC_GROW(diffstat->files, diffstat->nr + 1, diffstat->alloc); diffstat->files[diffstat->nr++] = x; if (name_b) { x->from_name = xstrdup(name_a); @@ -3965,11 +3961,7 @@ struct diff_queue_struct diff_queued_diff; void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp) { - if (queue->alloc <= queue->nr) { - queue->alloc = alloc_nr(queue->alloc); - queue->queue = xrealloc(queue->queue, - sizeof(dp) * queue->alloc); - } + ALLOC_GROW(queue->queue, queue->nr + 1, queue->alloc); queue->queue[queue->nr++] = dp; } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 06/11] diffcore-rename.c: use ALLOC_GROW() instead of inline code 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (4 preceding siblings ...) 2014-02-28 9:43 ` [PATCH v2 05/11] diff.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko @ 2014-02-28 9:44 ` Dmitry S. Dolzhenko 2014-02-28 9:45 ` [PATCH v2 07/11] patch-ids.c: change add_commit() to use ALLOC_GROW() Dmitry S. Dolzhenko ` (5 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:44 UTC (permalink / raw) To: git Affected functions: locate_rename_dst(), register_rename_src() Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- diffcore-rename.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/diffcore-rename.c b/diffcore-rename.c index 9b4f068..fbf3272 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -38,11 +38,7 @@ static struct diff_rename_dst *locate_rename_dst(struct diff_filespec *two, if (!insert_ok) return NULL; /* insert to make it at "first" */ - if (rename_dst_alloc <= rename_dst_nr) { - rename_dst_alloc = alloc_nr(rename_dst_alloc); - rename_dst = xrealloc(rename_dst, - rename_dst_alloc * sizeof(*rename_dst)); - } + ALLOC_GROW(rename_dst, rename_dst_nr + 1, rename_dst_alloc); rename_dst_nr++; if (first < rename_dst_nr) memmove(rename_dst + first + 1, rename_dst + first, @@ -82,11 +78,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p) } /* insert to make it at "first" */ - if (rename_src_alloc <= rename_src_nr) { - rename_src_alloc = alloc_nr(rename_src_alloc); - rename_src = xrealloc(rename_src, - rename_src_alloc * sizeof(*rename_src)); - } + ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc); rename_src_nr++; if (first < rename_src_nr) memmove(rename_src + first + 1, rename_src + first, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 07/11] patch-ids.c: change add_commit() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (5 preceding siblings ...) 2014-02-28 9:44 ` [PATCH v2 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko @ 2014-02-28 9:45 ` Dmitry S. Dolzhenko 2014-02-28 9:45 ` [PATCH v2 08/11] replace_object.c: change register_replace_object() " Dmitry S. Dolzhenko ` (4 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:45 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- patch-ids.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/patch-ids.c b/patch-ids.c index bc8a28f..bf81b92 100644 --- a/patch-ids.c +++ b/patch-ids.c @@ -83,10 +83,7 @@ static struct patch_id *add_commit(struct commit *commit, ent = &bucket->bucket[bucket->nr++]; hashcpy(ent->patch_id, sha1); - if (ids->alloc <= ids->nr) { - ids->alloc = alloc_nr(ids->nr); - ids->table = xrealloc(ids->table, sizeof(ent) * ids->alloc); - } + ALLOC_GROW(ids->table, ids->nr + 1, ids->alloc); if (pos < ids->nr) memmove(ids->table + pos + 1, ids->table + pos, sizeof(ent) * (ids->nr - pos)); -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 08/11] replace_object.c: change register_replace_object() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (6 preceding siblings ...) 2014-02-28 9:45 ` [PATCH v2 07/11] patch-ids.c: change add_commit() to use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-02-28 9:45 ` Dmitry S. Dolzhenko 2014-02-28 9:46 ` [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko ` (3 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:45 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- replace_object.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/replace_object.c b/replace_object.c index cdcaf8c..843deef 100644 --- a/replace_object.c +++ b/replace_object.c @@ -36,12 +36,8 @@ static int register_replace_object(struct replace_object *replace, return 1; } pos = -pos - 1; - if (replace_object_alloc <= ++replace_object_nr) { - replace_object_alloc = alloc_nr(replace_object_alloc); - replace_object = xrealloc(replace_object, - sizeof(*replace_object) * - replace_object_alloc); - } + ALLOC_GROW(replace_object, replace_object_nr + 1, replace_object_alloc); + replace_object_nr++; if (pos < replace_object_nr) memmove(replace_object + pos + 1, replace_object + pos, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (7 preceding siblings ...) 2014-02-28 9:45 ` [PATCH v2 08/11] replace_object.c: change register_replace_object() " Dmitry S. Dolzhenko @ 2014-02-28 9:46 ` Dmitry S. Dolzhenko 2014-02-28 12:39 ` Duy Nguyen 2014-02-28 9:46 ` [PATCH v2 10/11] dir.c: change create_simplify() to use ALLOC_GROW() Dmitry S. Dolzhenko ` (2 subsequent siblings) 11 siblings, 1 reply; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:46 UTC (permalink / raw) To: git Affected functions: read_one_reflog(), add_commit_info() Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- reflog-walk.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/reflog-walk.c b/reflog-walk.c index b2fbdb2..879d2ed 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -26,11 +26,7 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1, struct complete_reflogs *array = cb_data; struct reflog_info *item; - if (array->nr >= array->alloc) { - array->alloc = alloc_nr(array->nr + 1); - array->items = xrealloc(array->items, array->alloc * - sizeof(struct reflog_info)); - } + ALLOC_GROW(array->items, array->nr + 1, array->alloc); item = array->items + array->nr; memcpy(item->osha1, osha1, 20); memcpy(item->nsha1, nsha1, 20); @@ -114,11 +110,8 @@ static void add_commit_info(struct commit *commit, void *util, struct commit_info_lifo *lifo) { struct commit_info *info; - if (lifo->nr >= lifo->alloc) { - lifo->alloc = alloc_nr(lifo->nr + 1); - lifo->items = xrealloc(lifo->items, - lifo->alloc * sizeof(struct commit_info)); - } + + ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc); info = lifo->items + lifo->nr; info->commit = commit; info->util = util; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* Re: [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code 2014-02-28 9:46 ` [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko @ 2014-02-28 12:39 ` Duy Nguyen 2014-02-28 19:06 ` Junio C Hamano 0 siblings, 1 reply; 42+ messages in thread From: Duy Nguyen @ 2014-02-28 12:39 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: Git Mailing List On Fri, Feb 28, 2014 at 4:46 PM, Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> wrote: > Affected functions: read_one_reflog(), add_commit_info() We can usually see this from @@ line so it's not really needed to describe. Same comment for a few other patches. -- Duy ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code 2014-02-28 12:39 ` Duy Nguyen @ 2014-02-28 19:06 ` Junio C Hamano 0 siblings, 0 replies; 42+ messages in thread From: Junio C Hamano @ 2014-02-28 19:06 UTC (permalink / raw) To: Duy Nguyen; +Cc: Dmitry S. Dolzhenko, Git Mailing List Duy Nguyen <pclouds@gmail.com> writes: > On Fri, Feb 28, 2014 at 4:46 PM, Dmitry S. Dolzhenko > <dmitrys.dolzhenko@yandex.ru> wrote: >> Affected functions: read_one_reflog(), add_commit_info() > > We can usually see this from @@ line so it's not really needed to > describe. Same comment for a few other patches. Not everybody always reads "git log" with "-p". It is good to see what are changed mentioned somewhere. I prefer to see full sentences, though ;-) Subject: reflog-walk.c: use ALLOC_GROW() read_one_reflog() and add_commit_info() open-codes reallocation; use ALLOC_GROW() instead. or something. But that is minor. ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v2 10/11] dir.c: change create_simplify() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (8 preceding siblings ...) 2014-02-28 9:46 ` [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko @ 2014-02-28 9:46 ` Dmitry S. Dolzhenko 2014-02-28 9:47 ` [PATCH v2 11/11] attr.c: change handle_attr_line() " Dmitry S. Dolzhenko 2014-02-28 14:38 ` [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code Michael Haggerty 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:46 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- dir.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dir.c b/dir.c index 98bb50f..4ae38e4 100644 --- a/dir.c +++ b/dir.c @@ -1341,10 +1341,7 @@ static struct path_simplify *create_simplify(const char **pathspec) for (nr = 0 ; ; nr++) { const char *match; - if (nr >= alloc) { - alloc = alloc_nr(alloc); - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); - } + ALLOC_GROW(simplify, nr + 1, alloc); match = *pathspec++; if (!match) break; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v2 11/11] attr.c: change handle_attr_line() to use ALLOC_GROW() 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (9 preceding siblings ...) 2014-02-28 9:46 ` [PATCH v2 10/11] dir.c: change create_simplify() to use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-02-28 9:47 ` Dmitry S. Dolzhenko 2014-02-28 14:38 ` [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code Michael Haggerty 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-02-28 9:47 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- attr.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/attr.c b/attr.c index 8d13d70..734222d 100644 --- a/attr.c +++ b/attr.c @@ -338,12 +338,7 @@ static void handle_attr_line(struct attr_stack *res, a = parse_attr_line(line, src, lineno, macro_ok); if (!a) return; - if (res->alloc <= res->num_matches) { - res->alloc = alloc_nr(res->num_matches); - res->attrs = xrealloc(res->attrs, - sizeof(struct match_attr *) * - res->alloc); - } + ALLOC_GROW(res->attrs, res->num_matches + 1, res->alloc); res->attrs[res->num_matches++] = a; } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* Re: [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko ` (10 preceding siblings ...) 2014-02-28 9:47 ` [PATCH v2 11/11] attr.c: change handle_attr_line() " Dmitry S. Dolzhenko @ 2014-02-28 14:38 ` Michael Haggerty 2014-03-01 6:57 ` Dmitry S. Dolzhenko 2014-03-03 18:20 ` Junio C Hamano 11 siblings, 2 replies; 42+ messages in thread From: Michael Haggerty @ 2014-02-28 14:38 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: git On 02/28/2014 10:29 AM, Dmitry S. Dolzhenko wrote: > Thank you for your remarks. In this patch I tried to take them into account. > > Dmitry S. Dolzhenko (11): > builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() > bundle.c: change add_to_ref_list() to use ALLOC_GROW() > cache-tree.c: change find_subtree() to use ALLOC_GROW() > commit.c: change register_commit_graft() to use ALLOC_GROW() > diff.c: use ALLOC_GROW() instead of inline code > diffcore-rename.c: use ALLOC_GROW() instead of inline code > patch-ids.c: change add_commit() to use ALLOC_GROW() > replace_object.c: change register_replace_object() to use ALLOC_GROW() > reflog-walk.c: use ALLOC_GROW() instead of inline code > dir.c: change create_simplify() to use ALLOC_GROW() > attr.c: change handle_attr_line() to use ALLOC_GROW() > > attr.c | 7 +------ > builtin/pack-objects.c | 7 +------ > bundle.c | 6 +----- > cache-tree.c | 6 +----- > commit.c | 8 ++------ > diff.c | 12 ++---------- > diffcore-rename.c | 12 ++---------- > dir.c | 5 +---- > patch-ids.c | 5 +---- > reflog-walk.c | 13 +++---------- > replace_object.c | 8 ++------ > 11 files changed, 17 insertions(+), 72 deletions(-) Everything looks fine to me. Assuming the test suite ran 100%, Acked-by: Michael Haggerty <mhagger@alum.mit.edu> Thanks! Michael -- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/ ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code 2014-02-28 14:38 ` [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code Michael Haggerty @ 2014-03-01 6:57 ` Dmitry S. Dolzhenko 2014-03-03 18:20 ` Junio C Hamano 1 sibling, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-01 6:57 UTC (permalink / raw) To: Michael Haggerty; +Cc: git Michael, On 28.02.2014 18:38, Michael Haggerty wrote: > Everything looks fine to me. Assuming the test suite ran 100%, > > Acked-by: Michael Haggerty <mhagger@alum.mit.edu> All tests passed successfully for this patch, at least on my machine. Can I do something else to improve this patch? ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code 2014-02-28 14:38 ` [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code Michael Haggerty 2014-03-01 6:57 ` Dmitry S. Dolzhenko @ 2014-03-03 18:20 ` Junio C Hamano 1 sibling, 0 replies; 42+ messages in thread From: Junio C Hamano @ 2014-03-03 18:20 UTC (permalink / raw) To: Michael Haggerty; +Cc: Dmitry S. Dolzhenko, git Michael Haggerty <mhagger@alum.mit.edu> writes: > On 02/28/2014 10:29 AM, Dmitry S. Dolzhenko wrote: >> Thank you for your remarks. In this patch I tried to take them into account. >> >> Dmitry S. Dolzhenko (11): >> builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() >> bundle.c: change add_to_ref_list() to use ALLOC_GROW() >> cache-tree.c: change find_subtree() to use ALLOC_GROW() >> commit.c: change register_commit_graft() to use ALLOC_GROW() >> diff.c: use ALLOC_GROW() instead of inline code >> diffcore-rename.c: use ALLOC_GROW() instead of inline code >> patch-ids.c: change add_commit() to use ALLOC_GROW() >> replace_object.c: change register_replace_object() to use ALLOC_GROW() >> reflog-walk.c: use ALLOC_GROW() instead of inline code >> dir.c: change create_simplify() to use ALLOC_GROW() >> attr.c: change handle_attr_line() to use ALLOC_GROW() >> >> attr.c | 7 +------ >> builtin/pack-objects.c | 7 +------ >> bundle.c | 6 +----- >> cache-tree.c | 6 +----- >> commit.c | 8 ++------ >> diff.c | 12 ++---------- >> diffcore-rename.c | 12 ++---------- >> dir.c | 5 +---- >> patch-ids.c | 5 +---- >> reflog-walk.c | 13 +++---------- >> replace_object.c | 8 ++------ >> 11 files changed, 17 insertions(+), 72 deletions(-) > > Everything looks fine to me. Assuming the test suite ran 100%, > > Acked-by: Michael Haggerty <mhagger@alum.mit.edu> Looked good (modulo titles, which I think we already discussed), and queued on 'pu'. Thanks. ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko ` (2 preceding siblings ...) 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko @ 2014-03-03 7:18 ` Dmitry S. Dolzhenko 2014-03-03 7:19 ` [PATCH v3 01/11] builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() Dmitry S. Dolzhenko ` (11 more replies) 2014-03-03 14:20 ` [PATCH] " He Sun 4 siblings, 12 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:18 UTC (permalink / raw) To: git Dmitry S. Dolzhenko (11): builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() bundle.c: use ALLOC_GROW() in add_to_ref_list() cache-tree.c: use ALLOC_GROW() in find_subtree() commit.c: use ALLOC_GROW() in register_commit_graft() diff.c: use ALLOC_GROW() diffcore-rename.c: use ALLOC_GROW() patch-ids.c: use ALLOC_GROW() in add_commit() replace_object.c: use ALLOC_GROW() in register_replace_object() reflog-walk.c: use ALLOC_GROW() dir.c: use ALLOC_GROW() in create_simplify() attr.c: use ALLOC_GROW() in handle_attr_line() attr.c | 7 +------ builtin/pack-objects.c | 9 +++------ bundle.c | 6 +----- cache-tree.c | 6 +----- commit.c | 8 ++------ diff.c | 12 ++---------- diffcore-rename.c | 12 ++---------- dir.c | 5 +---- patch-ids.c | 5 +---- reflog-walk.c | 12 ++---------- replace_object.c | 8 ++------ 11 files changed, 18 insertions(+), 72 deletions(-) -- 1.8.5.3 This version differs from previous only minor changes: - update commit messages - keep code lines within 80 columns ^ permalink raw reply [flat|nested] 42+ messages in thread
* [PATCH v3 01/11] builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko @ 2014-03-03 7:19 ` Dmitry S. Dolzhenko 2014-03-03 7:20 ` [PATCH v3 02/11] bundle.c: use ALLOC_GROW() in add_to_ref_list() Dmitry S. Dolzhenko ` (10 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:19 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- builtin/pack-objects.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index c733379..0ffad6f 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -1213,12 +1213,9 @@ static int check_pbase_path(unsigned hash) if (0 <= pos) return 1; pos = -pos - 1; - if (done_pbase_paths_alloc <= done_pbase_paths_num) { - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); - done_pbase_paths = xrealloc(done_pbase_paths, - done_pbase_paths_alloc * - sizeof(unsigned)); - } + ALLOC_GROW(done_pbase_paths, + done_pbase_paths_num + 1, + done_pbase_paths_alloc); done_pbase_paths_num++; if (pos < done_pbase_paths_num) memmove(done_pbase_paths + pos + 1, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 02/11] bundle.c: use ALLOC_GROW() in add_to_ref_list() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko 2014-03-03 7:19 ` [PATCH v3 01/11] builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() Dmitry S. Dolzhenko @ 2014-03-03 7:20 ` Dmitry S. Dolzhenko 2014-03-03 7:20 ` [PATCH v3 03/11] cache-tree.c: use ALLOC_GROW() in find_subtree() Dmitry S. Dolzhenko ` (9 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:20 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- bundle.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/bundle.c b/bundle.c index e99065c..1388a3e 100644 --- a/bundle.c +++ b/bundle.c @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n"; static void add_to_ref_list(const unsigned char *sha1, const char *name, struct ref_list *list) { - if (list->nr + 1 >= list->alloc) { - list->alloc = alloc_nr(list->nr + 1); - list->list = xrealloc(list->list, - list->alloc * sizeof(list->list[0])); - } + ALLOC_GROW(list->list, list->nr + 1, list->alloc); memcpy(list->list[list->nr].sha1, sha1, 20); list->list[list->nr].name = xstrdup(name); list->nr++; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 03/11] cache-tree.c: use ALLOC_GROW() in find_subtree() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko 2014-03-03 7:19 ` [PATCH v3 01/11] builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() Dmitry S. Dolzhenko 2014-03-03 7:20 ` [PATCH v3 02/11] bundle.c: use ALLOC_GROW() in add_to_ref_list() Dmitry S. Dolzhenko @ 2014-03-03 7:20 ` Dmitry S. Dolzhenko 2014-03-03 7:21 ` [PATCH v3 04/11] commit.c: use ALLOC_GROW() in register_commit_graft() Dmitry S. Dolzhenko ` (8 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:20 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- cache-tree.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cache-tree.c b/cache-tree.c index 0bbec43..30149d1 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -75,11 +75,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it, return NULL; pos = -pos-1; - if (it->subtree_alloc <= it->subtree_nr) { - it->subtree_alloc = alloc_nr(it->subtree_alloc); - it->down = xrealloc(it->down, it->subtree_alloc * - sizeof(*it->down)); - } + ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc); it->subtree_nr++; down = xmalloc(sizeof(*down) + pathlen + 1); -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 04/11] commit.c: use ALLOC_GROW() in register_commit_graft() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (2 preceding siblings ...) 2014-03-03 7:20 ` [PATCH v3 03/11] cache-tree.c: use ALLOC_GROW() in find_subtree() Dmitry S. Dolzhenko @ 2014-03-03 7:21 ` Dmitry S. Dolzhenko 2014-03-03 7:22 ` [PATCH v3 05/11] diff.c: use ALLOC_GROW() Dmitry S. Dolzhenko ` (7 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:21 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- commit.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/commit.c b/commit.c index 6bf4fe0..e004314 100644 --- a/commit.c +++ b/commit.c @@ -147,12 +147,8 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups) return 1; } pos = -pos - 1; - if (commit_graft_alloc <= ++commit_graft_nr) { - commit_graft_alloc = alloc_nr(commit_graft_alloc); - commit_graft = xrealloc(commit_graft, - sizeof(*commit_graft) * - commit_graft_alloc); - } + ALLOC_GROW(commit_graft, commit_graft_nr + 1, commit_graft_alloc); + commit_graft_nr++; if (pos < commit_graft_nr) memmove(commit_graft + pos + 1, commit_graft + pos, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 05/11] diff.c: use ALLOC_GROW() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (3 preceding siblings ...) 2014-03-03 7:21 ` [PATCH v3 04/11] commit.c: use ALLOC_GROW() in register_commit_graft() Dmitry S. Dolzhenko @ 2014-03-03 7:22 ` Dmitry S. Dolzhenko 2014-03-03 7:22 ` [PATCH v3 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko ` (6 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:22 UTC (permalink / raw) To: git Use ALLOC_GROW() instead inline code in diffstat_add() and diff_q() Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- diff.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/diff.c b/diff.c index e800666..aebdfda 100644 --- a/diff.c +++ b/diff.c @@ -1361,11 +1361,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat, { struct diffstat_file *x; x = xcalloc(sizeof (*x), 1); - if (diffstat->nr == diffstat->alloc) { - diffstat->alloc = alloc_nr(diffstat->alloc); - diffstat->files = xrealloc(diffstat->files, - diffstat->alloc * sizeof(x)); - } + ALLOC_GROW(diffstat->files, diffstat->nr + 1, diffstat->alloc); diffstat->files[diffstat->nr++] = x; if (name_b) { x->from_name = xstrdup(name_a); @@ -3965,11 +3961,7 @@ struct diff_queue_struct diff_queued_diff; void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp) { - if (queue->alloc <= queue->nr) { - queue->alloc = alloc_nr(queue->alloc); - queue->queue = xrealloc(queue->queue, - sizeof(dp) * queue->alloc); - } + ALLOC_GROW(queue->queue, queue->nr + 1, queue->alloc); queue->queue[queue->nr++] = dp; } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 06/11] diffcore-rename.c: use ALLOC_GROW() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (4 preceding siblings ...) 2014-03-03 7:22 ` [PATCH v3 05/11] diff.c: use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-03-03 7:22 ` Dmitry S. Dolzhenko 2014-03-03 7:23 ` [PATCH v3 07/11] patch-ids.c: use ALLOC_GROW() in add_commit() Dmitry S. Dolzhenko ` (5 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:22 UTC (permalink / raw) To: git Use ALLOC_GROW() instead inline code in locate_rename_dst() and register_rename_src() Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- diffcore-rename.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/diffcore-rename.c b/diffcore-rename.c index 9b4f068..fbf3272 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -38,11 +38,7 @@ static struct diff_rename_dst *locate_rename_dst(struct diff_filespec *two, if (!insert_ok) return NULL; /* insert to make it at "first" */ - if (rename_dst_alloc <= rename_dst_nr) { - rename_dst_alloc = alloc_nr(rename_dst_alloc); - rename_dst = xrealloc(rename_dst, - rename_dst_alloc * sizeof(*rename_dst)); - } + ALLOC_GROW(rename_dst, rename_dst_nr + 1, rename_dst_alloc); rename_dst_nr++; if (first < rename_dst_nr) memmove(rename_dst + first + 1, rename_dst + first, @@ -82,11 +78,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p) } /* insert to make it at "first" */ - if (rename_src_alloc <= rename_src_nr) { - rename_src_alloc = alloc_nr(rename_src_alloc); - rename_src = xrealloc(rename_src, - rename_src_alloc * sizeof(*rename_src)); - } + ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc); rename_src_nr++; if (first < rename_src_nr) memmove(rename_src + first + 1, rename_src + first, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 07/11] patch-ids.c: use ALLOC_GROW() in add_commit() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (5 preceding siblings ...) 2014-03-03 7:22 ` [PATCH v3 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko @ 2014-03-03 7:23 ` Dmitry S. Dolzhenko 2014-03-03 7:23 ` [PATCH v3 08/11] replace_object.c: use ALLOC_GROW() in register_replace_object() Dmitry S. Dolzhenko ` (4 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:23 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- patch-ids.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/patch-ids.c b/patch-ids.c index bc8a28f..bf81b92 100644 --- a/patch-ids.c +++ b/patch-ids.c @@ -83,10 +83,7 @@ static struct patch_id *add_commit(struct commit *commit, ent = &bucket->bucket[bucket->nr++]; hashcpy(ent->patch_id, sha1); - if (ids->alloc <= ids->nr) { - ids->alloc = alloc_nr(ids->nr); - ids->table = xrealloc(ids->table, sizeof(ent) * ids->alloc); - } + ALLOC_GROW(ids->table, ids->nr + 1, ids->alloc); if (pos < ids->nr) memmove(ids->table + pos + 1, ids->table + pos, sizeof(ent) * (ids->nr - pos)); -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 08/11] replace_object.c: use ALLOC_GROW() in register_replace_object() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (6 preceding siblings ...) 2014-03-03 7:23 ` [PATCH v3 07/11] patch-ids.c: use ALLOC_GROW() in add_commit() Dmitry S. Dolzhenko @ 2014-03-03 7:23 ` Dmitry S. Dolzhenko 2014-03-03 7:24 ` [PATCH v3 09/11] reflog-walk.c: use ALLOC_GROW() Dmitry S. Dolzhenko ` (3 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:23 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- replace_object.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/replace_object.c b/replace_object.c index cdcaf8c..843deef 100644 --- a/replace_object.c +++ b/replace_object.c @@ -36,12 +36,8 @@ static int register_replace_object(struct replace_object *replace, return 1; } pos = -pos - 1; - if (replace_object_alloc <= ++replace_object_nr) { - replace_object_alloc = alloc_nr(replace_object_alloc); - replace_object = xrealloc(replace_object, - sizeof(*replace_object) * - replace_object_alloc); - } + ALLOC_GROW(replace_object, replace_object_nr + 1, replace_object_alloc); + replace_object_nr++; if (pos < replace_object_nr) memmove(replace_object + pos + 1, replace_object + pos, -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 09/11] reflog-walk.c: use ALLOC_GROW() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (7 preceding siblings ...) 2014-03-03 7:23 ` [PATCH v3 08/11] replace_object.c: use ALLOC_GROW() in register_replace_object() Dmitry S. Dolzhenko @ 2014-03-03 7:24 ` Dmitry S. Dolzhenko 2014-03-03 7:25 ` [PATCH v3 10/11] dir.c: use ALLOC_GROW() in create_simplify() Dmitry S. Dolzhenko ` (2 subsequent siblings) 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:24 UTC (permalink / raw) To: git Use ALLOC_GROW() instead inline code in add_commit_info() and read_one_reflog() Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- reflog-walk.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/reflog-walk.c b/reflog-walk.c index b2fbdb2..2899729 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -26,11 +26,7 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1, struct complete_reflogs *array = cb_data; struct reflog_info *item; - if (array->nr >= array->alloc) { - array->alloc = alloc_nr(array->nr + 1); - array->items = xrealloc(array->items, array->alloc * - sizeof(struct reflog_info)); - } + ALLOC_GROW(array->items, array->nr + 1, array->alloc); item = array->items + array->nr; memcpy(item->osha1, osha1, 20); memcpy(item->nsha1, nsha1, 20); @@ -114,11 +110,7 @@ static void add_commit_info(struct commit *commit, void *util, struct commit_info_lifo *lifo) { struct commit_info *info; - if (lifo->nr >= lifo->alloc) { - lifo->alloc = alloc_nr(lifo->nr + 1); - lifo->items = xrealloc(lifo->items, - lifo->alloc * sizeof(struct commit_info)); - } + ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc); info = lifo->items + lifo->nr; info->commit = commit; info->util = util; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 10/11] dir.c: use ALLOC_GROW() in create_simplify() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (8 preceding siblings ...) 2014-03-03 7:24 ` [PATCH v3 09/11] reflog-walk.c: use ALLOC_GROW() Dmitry S. Dolzhenko @ 2014-03-03 7:25 ` Dmitry S. Dolzhenko 2014-03-03 7:25 ` [PATCH v3 11/11] attr.c: use ALLOC_GROW() in handle_attr_line() Dmitry S. Dolzhenko 2014-03-03 8:23 ` [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code Eric Sunshine 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:25 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- dir.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dir.c b/dir.c index 98bb50f..4ae38e4 100644 --- a/dir.c +++ b/dir.c @@ -1341,10 +1341,7 @@ static struct path_simplify *create_simplify(const char **pathspec) for (nr = 0 ; ; nr++) { const char *match; - if (nr >= alloc) { - alloc = alloc_nr(alloc); - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); - } + ALLOC_GROW(simplify, nr + 1, alloc); match = *pathspec++; if (!match) break; -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* [PATCH v3 11/11] attr.c: use ALLOC_GROW() in handle_attr_line() 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (9 preceding siblings ...) 2014-03-03 7:25 ` [PATCH v3 10/11] dir.c: use ALLOC_GROW() in create_simplify() Dmitry S. Dolzhenko @ 2014-03-03 7:25 ` Dmitry S. Dolzhenko 2014-03-03 8:23 ` [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code Eric Sunshine 11 siblings, 0 replies; 42+ messages in thread From: Dmitry S. Dolzhenko @ 2014-03-03 7:25 UTC (permalink / raw) To: git Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> --- attr.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/attr.c b/attr.c index 8d13d70..734222d 100644 --- a/attr.c +++ b/attr.c @@ -338,12 +338,7 @@ static void handle_attr_line(struct attr_stack *res, a = parse_attr_line(line, src, lineno, macro_ok); if (!a) return; - if (res->alloc <= res->num_matches) { - res->alloc = alloc_nr(res->num_matches); - res->attrs = xrealloc(res->attrs, - sizeof(struct match_attr *) * - res->alloc); - } + ALLOC_GROW(res->attrs, res->num_matches + 1, res->alloc); res->attrs[res->num_matches++] = a; } -- 1.8.5.3 ^ permalink raw reply related [flat|nested] 42+ messages in thread
* Re: [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko ` (10 preceding siblings ...) 2014-03-03 7:25 ` [PATCH v3 11/11] attr.c: use ALLOC_GROW() in handle_attr_line() Dmitry S. Dolzhenko @ 2014-03-03 8:23 ` Eric Sunshine 2014-03-03 19:07 ` Junio C Hamano 11 siblings, 1 reply; 42+ messages in thread From: Eric Sunshine @ 2014-03-03 8:23 UTC (permalink / raw) To: Dmitry S. Dolzhenko; +Cc: Git List On Mon, Mar 3, 2014 at 2:18 AM, Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru> wrote: > Dmitry S. Dolzhenko (11): > builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() > bundle.c: use ALLOC_GROW() in add_to_ref_list() > cache-tree.c: use ALLOC_GROW() in find_subtree() > commit.c: use ALLOC_GROW() in register_commit_graft() > diff.c: use ALLOC_GROW() > diffcore-rename.c: use ALLOC_GROW() > patch-ids.c: use ALLOC_GROW() in add_commit() > replace_object.c: use ALLOC_GROW() in register_replace_object() > reflog-walk.c: use ALLOC_GROW() > dir.c: use ALLOC_GROW() in create_simplify() > attr.c: use ALLOC_GROW() in handle_attr_line() > > attr.c | 7 +------ > builtin/pack-objects.c | 9 +++------ > bundle.c | 6 +----- > cache-tree.c | 6 +----- > commit.c | 8 ++------ > diff.c | 12 ++---------- > diffcore-rename.c | 12 ++---------- > dir.c | 5 +---- > patch-ids.c | 5 +---- > reflog-walk.c | 12 ++---------- > replace_object.c | 8 ++------ > 11 files changed, 18 insertions(+), 72 deletions(-) > > -- > 1.8.5.3 > > This version differs from previous only minor changes: > - update commit messages > - keep code lines within 80 columns Place this commentary at the top of the cover letter since that's where people look for it. You want to ease the reviewer's job as much as possible, so it helps to link to the previous submission, like this [1]. Likewise, you can help the reviewer by being more specific about how you updated the commit messages (and perhaps by linking to the relevant discussion points, like this [2][3]). [1]: http://thread.gmane.org/gmane.comp.version-control.git/242857 [2]: http://article.gmane.org/gmane.comp.version-control.git/243004 [3]: http://article.gmane.org/gmane.comp.version-control.git/243049 ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code 2014-03-03 8:23 ` [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code Eric Sunshine @ 2014-03-03 19:07 ` Junio C Hamano 0 siblings, 0 replies; 42+ messages in thread From: Junio C Hamano @ 2014-03-03 19:07 UTC (permalink / raw) To: Eric Sunshine; +Cc: Dmitry S. Dolzhenko, Git List Eric Sunshine <sunshine@sunshineco.com> writes: > On Mon, Mar 3, 2014 at 2:18 AM, Dmitry S. Dolzhenko > <dmitrys.dolzhenko@yandex.ru> wrote: >> Dmitry S. Dolzhenko (11): >> builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() >> bundle.c: use ALLOC_GROW() in add_to_ref_list() >> cache-tree.c: use ALLOC_GROW() in find_subtree() >> commit.c: use ALLOC_GROW() in register_commit_graft() >> diff.c: use ALLOC_GROW() >> diffcore-rename.c: use ALLOC_GROW() >> patch-ids.c: use ALLOC_GROW() in add_commit() >> replace_object.c: use ALLOC_GROW() in register_replace_object() >> reflog-walk.c: use ALLOC_GROW() >> dir.c: use ALLOC_GROW() in create_simplify() >> attr.c: use ALLOC_GROW() in handle_attr_line() >> >> attr.c | 7 +------ >> builtin/pack-objects.c | 9 +++------ >> bundle.c | 6 +----- >> cache-tree.c | 6 +----- >> commit.c | 8 ++------ >> diff.c | 12 ++---------- >> diffcore-rename.c | 12 ++---------- >> dir.c | 5 +---- >> patch-ids.c | 5 +---- >> reflog-walk.c | 12 ++---------- >> replace_object.c | 8 ++------ >> 11 files changed, 18 insertions(+), 72 deletions(-) >> >> -- >> 1.8.5.3 >> >> This version differs from previous only minor changes: >> - update commit messages >> - keep code lines within 80 columns > > Place this commentary at the top of the cover letter since that's > where people look for it. > > You want to ease the reviewer's job as much as possible, so it helps > to link to the previous submission, like this [1]. > > Likewise, you can help the reviewer by being more specific about how > you updated the commit messages (and perhaps by linking to the > relevant discussion points, like this [2][3]). > > [1]: http://thread.gmane.org/gmane.comp.version-control.git/242857 > [2]: http://article.gmane.org/gmane.comp.version-control.git/243004 > [3]: http://article.gmane.org/gmane.comp.version-control.git/243049 It would be helpful for people to also pay attention to what is pushed out on 'pu' ;-) ^ permalink raw reply [flat|nested] 42+ messages in thread
* Re: [PATCH] Use ALLOC_GROW() instead of inline code 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko ` (3 preceding siblings ...) 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko @ 2014-03-03 14:20 ` He Sun 4 siblings, 0 replies; 42+ messages in thread From: He Sun @ 2014-03-03 14:20 UTC (permalink / raw) To: Dmitry S. Dolzhenko, git 2014-02-28 4:45 GMT+08:00 Dmitry S. Dolzhenko <dmitrys.dolzhenko@yandex.ru>: > Signed-off-by: Dmitry S. Dolzhenko <dmitrys.dolzhenko@gmail.com> > --- > attr.c | 7 +------ > builtin/pack-objects.c | 7 +------ > bundle.c | 6 +----- > cache-tree.c | 6 +----- > commit.c | 8 ++------ > diff.c | 12 ++---------- > diffcore-rename.c | 12 ++---------- > dir.c | 5 +---- > patch-ids.c | 5 +---- > read-cache.c | 9 ++------- > reflog-walk.c | 13 +++---------- > replace_object.c | 8 ++------ > 12 files changed, 19 insertions(+), 79 deletions(-) > I find another two files can be fixed this way. - builtin/mktree.c - sha1_file.c I find it by searching the key word "alloc_nr" throughout the source code. May be there are other places of this kind of code and you can find it by other ways. > diff --git a/attr.c b/attr.c > index 8d13d70..734222d 100644 > --- a/attr.c > +++ b/attr.c > @@ -338,12 +338,7 @@ static void handle_attr_line(struct attr_stack *res, > a = parse_attr_line(line, src, lineno, macro_ok); > if (!a) > return; > - if (res->alloc <= res->num_matches) { > - res->alloc = alloc_nr(res->num_matches); > - res->attrs = xrealloc(res->attrs, > - sizeof(struct match_attr *) * > - res->alloc); > - } > + ALLOC_GROW(res->attrs, res->num_matches + 1, res->alloc); > res->attrs[res->num_matches++] = a; > } > > diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c > index 541667f..92cbce8 100644 > --- a/builtin/pack-objects.c > +++ b/builtin/pack-objects.c > @@ -1156,12 +1156,7 @@ static int check_pbase_path(unsigned hash) > if (0 <= pos) > return 1; > pos = -pos - 1; > - if (done_pbase_paths_alloc <= done_pbase_paths_num) { > - done_pbase_paths_alloc = alloc_nr(done_pbase_paths_alloc); > - done_pbase_paths = xrealloc(done_pbase_paths, > - done_pbase_paths_alloc * > - sizeof(unsigned)); > - } > + ALLOC_GROW(done_pbase_paths, done_pbase_paths_num + 1, done_pbase_paths_alloc); > done_pbase_paths_num++; > if (pos < done_pbase_paths_num) > memmove(done_pbase_paths + pos + 1, > diff --git a/bundle.c b/bundle.c > index e99065c..1388a3e 100644 > --- a/bundle.c > +++ b/bundle.c > @@ -14,11 +14,7 @@ static const char bundle_signature[] = "# v2 git bundle\n"; > static void add_to_ref_list(const unsigned char *sha1, const char *name, > struct ref_list *list) > { > - if (list->nr + 1 >= list->alloc) { > - list->alloc = alloc_nr(list->nr + 1); > - list->list = xrealloc(list->list, > - list->alloc * sizeof(list->list[0])); > - } > + ALLOC_GROW(list->list, list->nr + 1, list->alloc); > memcpy(list->list[list->nr].sha1, sha1, 20); > list->list[list->nr].name = xstrdup(name); > list->nr++; > diff --git a/cache-tree.c b/cache-tree.c > index 0bbec43..30149d1 100644 > --- a/cache-tree.c > +++ b/cache-tree.c > @@ -75,11 +75,7 @@ static struct cache_tree_sub *find_subtree(struct cache_tree *it, > return NULL; > > pos = -pos-1; > - if (it->subtree_alloc <= it->subtree_nr) { > - it->subtree_alloc = alloc_nr(it->subtree_alloc); > - it->down = xrealloc(it->down, it->subtree_alloc * > - sizeof(*it->down)); > - } > + ALLOC_GROW(it->down, it->subtree_nr + 1, it->subtree_alloc); > it->subtree_nr++; > > down = xmalloc(sizeof(*down) + pathlen + 1); > diff --git a/commit.c b/commit.c > index 6bf4fe0..e004314 100644 > --- a/commit.c > +++ b/commit.c > @@ -147,12 +147,8 @@ int register_commit_graft(struct commit_graft *graft, int ignore_dups) > return 1; > } > pos = -pos - 1; > - if (commit_graft_alloc <= ++commit_graft_nr) { > - commit_graft_alloc = alloc_nr(commit_graft_alloc); > - commit_graft = xrealloc(commit_graft, > - sizeof(*commit_graft) * > - commit_graft_alloc); > - } > + ALLOC_GROW(commit_graft, commit_graft_nr + 1, commit_graft_alloc); > + commit_graft_nr++; > if (pos < commit_graft_nr) > memmove(commit_graft + pos + 1, > commit_graft + pos, > diff --git a/diff.c b/diff.c > index 8e4a6a9..f5f0fd1 100644 > --- a/diff.c > +++ b/diff.c > @@ -1361,11 +1361,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat, > { > struct diffstat_file *x; > x = xcalloc(sizeof (*x), 1); > - if (diffstat->nr == diffstat->alloc) { > - diffstat->alloc = alloc_nr(diffstat->alloc); > - diffstat->files = xrealloc(diffstat->files, > - diffstat->alloc * sizeof(x)); > - } > + ALLOC_GROW(diffstat->files, diffstat->nr + 1, diffstat->alloc); > diffstat->files[diffstat->nr++] = x; > if (name_b) { > x->from_name = xstrdup(name_a); > @@ -3965,11 +3961,7 @@ struct diff_queue_struct diff_queued_diff; > > void diff_q(struct diff_queue_struct *queue, struct diff_filepair *dp) > { > - if (queue->alloc <= queue->nr) { > - queue->alloc = alloc_nr(queue->alloc); > - queue->queue = xrealloc(queue->queue, > - sizeof(dp) * queue->alloc); > - } > + ALLOC_GROW(queue->queue, queue->nr + 1, queue->alloc); > queue->queue[queue->nr++] = dp; > } > > diff --git a/diffcore-rename.c b/diffcore-rename.c > index 6c7a72f..f54d5bf 100644 > --- a/diffcore-rename.c > +++ b/diffcore-rename.c > @@ -38,11 +38,7 @@ static struct diff_rename_dst *locate_rename_dst(struct diff_filespec *two, > if (!insert_ok) > return NULL; > /* insert to make it at "first" */ > - if (rename_dst_alloc <= rename_dst_nr) { > - rename_dst_alloc = alloc_nr(rename_dst_alloc); > - rename_dst = xrealloc(rename_dst, > - rename_dst_alloc * sizeof(*rename_dst)); > - } > + ALLOC_GROW(rename_dst, rename_dst_nr + 1, rename_dst_alloc); > rename_dst_nr++; > if (first < rename_dst_nr) > memmove(rename_dst + first + 1, rename_dst + first, > @@ -82,11 +78,7 @@ static struct diff_rename_src *register_rename_src(struct diff_filepair *p) > } > > /* insert to make it at "first" */ > - if (rename_src_alloc <= rename_src_nr) { > - rename_src_alloc = alloc_nr(rename_src_alloc); > - rename_src = xrealloc(rename_src, > - rename_src_alloc * sizeof(*rename_src)); > - } > + ALLOC_GROW(rename_src, rename_src_nr + 1, rename_src_alloc); > rename_src_nr++; > if (first < rename_src_nr) > memmove(rename_src + first + 1, rename_src + first, > diff --git a/dir.c b/dir.c > index b35b633..72f6e2a 100644 > --- a/dir.c > +++ b/dir.c > @@ -1329,13 +1329,10 @@ static struct path_simplify *create_simplify(const char **pathspec) > > for (nr = 0 ; ; nr++) { > const char *match; > - if (nr >= alloc) { > - alloc = alloc_nr(alloc); > - simplify = xrealloc(simplify, alloc * sizeof(*simplify)); > - } > match = *pathspec++; > if (!match) > break; > + ALLOC_GROW(simplify, nr + 1, alloc); > simplify[nr].path = match; > simplify[nr].len = simple_length(match); > } > diff --git a/patch-ids.c b/patch-ids.c > index bc8a28f..bf81b92 100644 > --- a/patch-ids.c > +++ b/patch-ids.c > @@ -83,10 +83,7 @@ static struct patch_id *add_commit(struct commit *commit, > ent = &bucket->bucket[bucket->nr++]; > hashcpy(ent->patch_id, sha1); > > - if (ids->alloc <= ids->nr) { > - ids->alloc = alloc_nr(ids->nr); > - ids->table = xrealloc(ids->table, sizeof(ent) * ids->alloc); > - } > + ALLOC_GROW(ids->table, ids->nr + 1, ids->alloc); > if (pos < ids->nr) > memmove(ids->table + pos + 1, ids->table + pos, > sizeof(ent) * (ids->nr - pos)); > diff --git a/read-cache.c b/read-cache.c > index 33dd676..e585541 100644 > --- a/read-cache.c > +++ b/read-cache.c > @@ -993,11 +993,7 @@ int add_index_entry(struct index_state *istate, struct cache_entry *ce, int opti > } > > /* Make sure the array is big enough .. */ > - if (istate->cache_nr == istate->cache_alloc) { > - istate->cache_alloc = alloc_nr(istate->cache_alloc); > - istate->cache = xrealloc(istate->cache, > - istate->cache_alloc * sizeof(*istate->cache)); > - } > + ALLOC_GROW(istate->cache, istate->cache_nr + 1, istate->cache_alloc); > > /* Add it in.. */ > istate->cache_nr++; > @@ -1466,8 +1462,7 @@ int read_index_from(struct index_state *istate, const char *path) > > istate->version = ntohl(hdr->hdr_version); > istate->cache_nr = ntohl(hdr->hdr_entries); > - istate->cache_alloc = alloc_nr(istate->cache_nr); > - istate->cache = xcalloc(istate->cache_alloc, sizeof(*istate->cache)); > + ALLOC_GROW(istate->cache, istate->cache_nr, istate->cache_alloc); > istate->initialized = 1; > > if (istate->version == 4) > diff --git a/reflog-walk.c b/reflog-walk.c > index b2fbdb2..879d2ed 100644 > --- a/reflog-walk.c > +++ b/reflog-walk.c > @@ -26,11 +26,7 @@ static int read_one_reflog(unsigned char *osha1, unsigned char *nsha1, > struct complete_reflogs *array = cb_data; > struct reflog_info *item; > > - if (array->nr >= array->alloc) { > - array->alloc = alloc_nr(array->nr + 1); > - array->items = xrealloc(array->items, array->alloc * > - sizeof(struct reflog_info)); > - } > + ALLOC_GROW(array->items, array->nr + 1, array->alloc); > item = array->items + array->nr; > memcpy(item->osha1, osha1, 20); > memcpy(item->nsha1, nsha1, 20); > @@ -114,11 +110,8 @@ static void add_commit_info(struct commit *commit, void *util, > struct commit_info_lifo *lifo) > { > struct commit_info *info; > - if (lifo->nr >= lifo->alloc) { > - lifo->alloc = alloc_nr(lifo->nr + 1); > - lifo->items = xrealloc(lifo->items, > - lifo->alloc * sizeof(struct commit_info)); > - } > + > + ALLOC_GROW(lifo->items, lifo->nr + 1, lifo->alloc); > info = lifo->items + lifo->nr; > info->commit = commit; > info->util = util; > diff --git a/replace_object.c b/replace_object.c > index cdcaf8c..843deef 100644 > --- a/replace_object.c > +++ b/replace_object.c > @@ -36,12 +36,8 @@ static int register_replace_object(struct replace_object *replace, > return 1; > } > pos = -pos - 1; > - if (replace_object_alloc <= ++replace_object_nr) { > - replace_object_alloc = alloc_nr(replace_object_alloc); > - replace_object = xrealloc(replace_object, > - sizeof(*replace_object) * > - replace_object_alloc); > - } > + ALLOC_GROW(replace_object, replace_object_nr + 1, replace_object_alloc); > + replace_object_nr++; > if (pos < replace_object_nr) > memmove(replace_object + pos + 1, > replace_object + pos, > -- > 1.8.3.2 > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html Cheers, He Sun ^ permalink raw reply [flat|nested] 42+ messages in thread
end of thread, other threads:[~2014-03-03 19:08 UTC | newest] Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-02-27 20:45 [PATCH] Use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko 2014-02-27 22:11 ` Michael Haggerty 2014-02-27 22:44 ` Junio C Hamano 2014-02-28 9:29 ` [PATCH v2 00/11] " Dmitry S. Dolzhenko 2014-02-28 9:40 ` [PATCH v2 01/11] builtin/pack-objects.c: change check_pbase_path() to use ALLOC_GROW() Dmitry S. Dolzhenko 2014-02-28 12:32 ` Duy Nguyen 2014-02-28 12:40 ` Duy Nguyen 2014-02-28 14:20 ` Michael Haggerty 2014-02-28 14:36 ` Duy Nguyen 2014-02-28 19:03 ` Junio C Hamano 2014-03-01 7:07 ` Jeff King 2014-03-03 18:23 ` Junio C Hamano 2014-02-28 9:41 ` [PATCH v2 02/11] bundle.c: change add_to_ref_list() " Dmitry S. Dolzhenko 2014-02-28 9:41 ` [PATCH v2 03/11] cache-tree.c: change find_subtree() " Dmitry S. Dolzhenko 2014-02-28 9:42 ` [PATCH v2 04/11] commit.c: change register_commit_graft() " Dmitry S. Dolzhenko 2014-02-28 9:43 ` [PATCH v2 05/11] diff.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko 2014-02-28 9:44 ` [PATCH v2 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko 2014-02-28 9:45 ` [PATCH v2 07/11] patch-ids.c: change add_commit() to use ALLOC_GROW() Dmitry S. Dolzhenko 2014-02-28 9:45 ` [PATCH v2 08/11] replace_object.c: change register_replace_object() " Dmitry S. Dolzhenko 2014-02-28 9:46 ` [PATCH v2 09/11] reflog-walk.c: use ALLOC_GROW() instead of inline code Dmitry S. Dolzhenko 2014-02-28 12:39 ` Duy Nguyen 2014-02-28 19:06 ` Junio C Hamano 2014-02-28 9:46 ` [PATCH v2 10/11] dir.c: change create_simplify() to use ALLOC_GROW() Dmitry S. Dolzhenko 2014-02-28 9:47 ` [PATCH v2 11/11] attr.c: change handle_attr_line() " Dmitry S. Dolzhenko 2014-02-28 14:38 ` [PATCH v2 00/11] Use ALLOC_GROW() instead of inline code Michael Haggerty 2014-03-01 6:57 ` Dmitry S. Dolzhenko 2014-03-03 18:20 ` Junio C Hamano 2014-03-03 7:18 ` [PATCH v3 " Dmitry S. Dolzhenko 2014-03-03 7:19 ` [PATCH v3 01/11] builtin/pack-objects.c: use ALLOC_GROW() in check_pbase_path() Dmitry S. Dolzhenko 2014-03-03 7:20 ` [PATCH v3 02/11] bundle.c: use ALLOC_GROW() in add_to_ref_list() Dmitry S. Dolzhenko 2014-03-03 7:20 ` [PATCH v3 03/11] cache-tree.c: use ALLOC_GROW() in find_subtree() Dmitry S. Dolzhenko 2014-03-03 7:21 ` [PATCH v3 04/11] commit.c: use ALLOC_GROW() in register_commit_graft() Dmitry S. Dolzhenko 2014-03-03 7:22 ` [PATCH v3 05/11] diff.c: use ALLOC_GROW() Dmitry S. Dolzhenko 2014-03-03 7:22 ` [PATCH v3 06/11] diffcore-rename.c: " Dmitry S. Dolzhenko 2014-03-03 7:23 ` [PATCH v3 07/11] patch-ids.c: use ALLOC_GROW() in add_commit() Dmitry S. Dolzhenko 2014-03-03 7:23 ` [PATCH v3 08/11] replace_object.c: use ALLOC_GROW() in register_replace_object() Dmitry S. Dolzhenko 2014-03-03 7:24 ` [PATCH v3 09/11] reflog-walk.c: use ALLOC_GROW() Dmitry S. Dolzhenko 2014-03-03 7:25 ` [PATCH v3 10/11] dir.c: use ALLOC_GROW() in create_simplify() Dmitry S. Dolzhenko 2014-03-03 7:25 ` [PATCH v3 11/11] attr.c: use ALLOC_GROW() in handle_attr_line() Dmitry S. Dolzhenko 2014-03-03 8:23 ` [PATCH v3 00/11] Use ALLOC_GROW() instead of inline code Eric Sunshine 2014-03-03 19:07 ` Junio C Hamano 2014-03-03 14:20 ` [PATCH] " He Sun
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.