diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-02-24 13:25:55 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-24 13:25:55 -0800 |
commit | 9831e92bfa833ee9c0ce464bbc2f941ae6c2698d (patch) | |
tree | ea6f9d9f2868099d6c541359fcc0d59d04d6d4ce /builtin | |
parent | e84d5e9fa178a027b1c8b9f6e22c9173dcda03b3 (diff) | |
parent | de1e67d0703894cb6ea782e36abb63976ab07e60 (diff) | |
download | git-9831e92bfa833ee9c0ce464bbc2f941ae6c2698d.tar.gz git-9831e92bfa833ee9c0ce464bbc2f941ae6c2698d.tar.xz |
Merge branch 'jk/lose-name-path'
The "name_path" API was an attempt to reduce the need to construct
the full path out of a series of path components while walking a
tree hierarchy, but over time made less efficient because the path
needs to be flattened, e.g. to be compared with another path that
is already flat. The API has been removed and its users have been
rewritten to simplify the overall code complexity.
* jk/lose-name-path:
list-objects: pass full pathname to callbacks
list-objects: drop name_path entirely
list-objects: convert name_path to a strbuf
show_object_with_name: simplify by using path_name()
http-push: stop using name_path
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/pack-objects.c | 15 | ||||
-rw-r--r-- | builtin/rev-list.c | 12 |
2 files changed, 6 insertions, 21 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index 4dae5b11c..a6609f19f 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -2284,21 +2284,11 @@ static void show_commit(struct commit *commit, void *data) index_commit_for_bitmap(commit); } -static void show_object(struct object *obj, - const struct name_path *path, const char *last, - void *data) +static void show_object(struct object *obj, const char *name, void *data) { - char *name = path_name(path, last); - add_preferred_base_object(name); add_object_entry(obj->oid.hash, obj->type, name, 0); obj->flags |= OBJECT_ADDED; - - /* - * We will have generated the hash from the name, - * but not saved a pointer to it - we can free it - */ - free((char *)name); } static void show_edge(struct commit *commit) @@ -2480,8 +2470,7 @@ static int get_object_list_from_bitmap(struct rev_info *revs) } static void record_recent_object(struct object *obj, - const struct name_path *path, - const char *last, + const char *name, void *data) { sha1_array_append(&recent_objects, obj->oid.hash); diff --git a/builtin/rev-list.c b/builtin/rev-list.c index 3aa89a1a3..275da0d64 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -177,9 +177,7 @@ static void finish_commit(struct commit *commit, void *data) free_commit_buffer(commit); } -static void finish_object(struct object *obj, - const struct name_path *path, const char *name, - void *cb_data) +static void finish_object(struct object *obj, const char *name, void *cb_data) { struct rev_list_info *info = cb_data; if (obj->type == OBJ_BLOB && !has_object_file(&obj->oid)) @@ -188,15 +186,13 @@ static void finish_object(struct object *obj, parse_object(obj->oid.hash); } -static void show_object(struct object *obj, - const struct name_path *path, const char *component, - void *cb_data) +static void show_object(struct object *obj, const char *name, void *cb_data) { struct rev_list_info *info = cb_data; - finish_object(obj, path, component, cb_data); + finish_object(obj, name, cb_data); if (info->flags & REV_LIST_QUIET) return; - show_object_with_name(stdout, obj, path, component); + show_object_with_name(stdout, obj, name); } static void show_edge(struct commit *commit) |