File tree Expand file tree Collapse file tree 1 file changed +6
-14
lines changed
Expand file tree Collapse file tree 1 file changed +6
-14
lines changed Original file line number Diff line number Diff line change @@ -2653,23 +2653,15 @@ static void write_tree(struct object_id *result_oid,
26532653 size_t hash_size )
26542654{
26552655 size_t maxlen = 0 , extra ;
2656- unsigned int nr = versions -> nr - offset ;
2656+ unsigned int nr ;
26572657 struct strbuf buf = STRBUF_INIT ;
2658- struct string_list relevant_entries = STRING_LIST_INIT_NODUP ;
26592658 int i ;
26602659
2661- /*
2662- * We want to sort the last (versions->nr-offset) entries in versions.
2663- * Do so by abusing the string_list API a bit: make another string_list
2664- * that contains just those entries and then sort them.
2665- *
2666- * We won't use relevant_entries again and will let it just pop off the
2667- * stack, so there won't be allocation worries or anything.
2668- */
2669- relevant_entries .items = versions -> items + offset ;
2670- relevant_entries .nr = versions -> nr - offset ;
2671- /* No need for STABLE_QSORT -- filenames must be unique */
2672- QSORT (relevant_entries .items , relevant_entries .nr , tree_entry_order );
2660+ assert (offset <= versions -> nr );
2661+ nr = versions -> nr - offset ;
2662+ if (versions -> nr )
2663+ /* No need for STABLE_QSORT -- filenames must be unique */
2664+ QSORT (versions -> items + offset , nr , tree_entry_order );
26732665
26742666 /* Pre-allocate some space in buf */
26752667 extra = hash_size + 8 ; /* 8: 6 for mode, 1 for space, 1 for NUL char */
You can’t perform that action at this time.
0 commit comments