From c99e7e1a62788b7bfdda1d3189a2b8c2254efa96 Mon Sep 17 00:00:00 2001
From: Ethan Koenig <etk39@cornell.edu>
Date: Sat, 11 Mar 2017 03:50:12 -0500
Subject: [PATCH] Simplify RepositoryList.loadAttributes() (#1211)

---
 models/repo_list.go | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/models/repo_list.go b/models/repo_list.go
index a1a309f9c4..b7e314e707 100644
--- a/models/repo_list.go
+++ b/models/repo_list.go
@@ -21,26 +21,19 @@ func (repos RepositoryList) loadAttributes(e Engine) error {
 	}
 
 	// Load owners.
-	set := make(map[int64]*User)
+	set := make(map[int64]struct{})
 	for i := range repos {
-		set[repos[i].OwnerID] = nil
+		set[repos[i].OwnerID] = struct{}{}
 	}
-	userIDs := make([]int64, 0, len(set))
-	for userID := range set {
-		userIDs = append(userIDs, userID)
-	}
-	users := make([]*User, 0, len(userIDs))
+	users := make(map[int64]*User, len(set))
 	if err := e.
 		Where("id > 0").
-		In("id", userIDs).
+		In("id", keysInt64(set)).
 		Find(&users); err != nil {
 		return fmt.Errorf("find users: %v", err)
 	}
-	for i := range users {
-		set[users[i].ID] = users[i]
-	}
 	for i := range repos {
-		repos[i].Owner = set[repos[i].OwnerID]
+		repos[i].Owner = users[repos[i].OwnerID]
 	}
 	return nil
 }