From 36946ecbb8d52d0dc932f1f60c7d2e881119ac40 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Tue, 4 Aug 2015 08:48:26 -0600 Subject: [PATCH] refactor lfs.SortExtensions * fewer slice iterations * slices are initialized with the correct capacity --- lfs/extension.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lfs/extension.go b/lfs/extension.go index 4297d63b..1e61a1f7 100644 --- a/lfs/extension.go +++ b/lfs/extension.go @@ -51,6 +51,7 @@ type extCommand struct { // SortExtensions sorts a map of extensions in ascending order by Priority func SortExtensions(m map[string]Extension) ([]Extension, error) { pMap := make(map[int]Extension) + priorities := make([]int, 0, len(m)) for n, ext := range m { p := ext.Priority if _, exist := pMap[p]; exist { @@ -58,18 +59,14 @@ func SortExtensions(m map[string]Extension) ([]Extension, error) { return nil, err } pMap[p] = ext - } - - var priorities []int - for p := range pMap { priorities = append(priorities, p) } sort.Ints(priorities) - var result []Extension - for _, p := range priorities { - result = append(result, pMap[p]) + result := make([]Extension, len(priorities)) + for i, p := range priorities { + result[i] = pMap[p] } return result, nil