aboutsummaryrefslogtreecommitdiffstats
path: root/models/issue_comment.go
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2021-08-09 20:08:51 +0200
committerGitHub <noreply@github.com>2021-08-09 14:08:51 -0400
commitd9ef43a7126ab83af563c1c9b54cdf0092327b2a (patch)
treefabc9a9d24d42bb0de6dd9557c9e07e95bd5722b /models/issue_comment.go
parent23d438f56524a7c3fc185df66d6d95f797a80eee (diff)
downloadgitea-d9ef43a7126ab83af563c1c9b54cdf0092327b2a.tar.gz
gitea-d9ef43a7126ab83af563c1c9b54cdf0092327b2a.zip
Replace `list.List` with slices (#16311)
* Replaced list with slice. * Fixed usage of pointer to temporary variable. * Replaced LIFO list with slice. * Lint * Removed type check. * Removed duplicated code. * Lint * Fixed merge. Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'models/issue_comment.go')
-rw-r--r--models/issue_comment.go83
1 files changed, 29 insertions, 54 deletions
diff --git a/models/issue_comment.go b/models/issue_comment.go
index ae2dc0811f..755041efd7 100644
--- a/models/issue_comment.go
+++ b/models/issue_comment.go
@@ -7,7 +7,6 @@
package models
import (
- "container/list"
"fmt"
"regexp"
"strconv"
@@ -191,11 +190,11 @@ type Comment struct {
RefIssue *Issue `xorm:"-"`
RefComment *Comment `xorm:"-"`
- Commits *list.List `xorm:"-"`
- OldCommit string `xorm:"-"`
- NewCommit string `xorm:"-"`
- CommitsNum int64 `xorm:"-"`
- IsForcePush bool `xorm:"-"`
+ Commits []*SignCommitWithStatuses `xorm:"-"`
+ OldCommit string `xorm:"-"`
+ NewCommit string `xorm:"-"`
+ CommitsNum int64 `xorm:"-"`
+ IsForcePush bool `xorm:"-"`
}
// PushActionContent is content of push pull comment
@@ -675,13 +674,8 @@ func (c *Comment) LoadPushCommits() (err error) {
}
defer gitRepo.Close()
- c.Commits = gitRepo.GetCommitsFromIDs(data.CommitIDs)
- c.CommitsNum = int64(c.Commits.Len())
- if c.CommitsNum > 0 {
- c.Commits = ValidateCommitsWithEmails(c.Commits)
- c.Commits = ParseCommitsWithSignature(c.Commits, c.Issue.Repo)
- c.Commits = ParseCommitsWithStatus(c.Commits, c.Issue.Repo)
- }
+ c.Commits = ConvertFromGitCommit(gitRepo.GetCommitsFromIDs(data.CommitIDs), c.Issue.Repo)
+ c.CommitsNum = int64(len(c.Commits))
}
return err
@@ -1293,21 +1287,17 @@ func getCommitIDsFromRepo(repo *Repository, oldCommitID, newCommitID, baseBranch
return nil, false, err
}
- var (
- commits *list.List
- commitChecks map[string]commitBranchCheckItem
- )
- commits, err = newCommit.CommitsBeforeUntil(oldCommitID)
+ commits, err := newCommit.CommitsBeforeUntil(oldCommitID)
if err != nil {
return nil, false, err
}
- commitIDs = make([]string, 0, commits.Len())
- commitChecks = make(map[string]commitBranchCheckItem)
+ commitIDs = make([]string, 0, len(commits))
+ commitChecks := make(map[string]*commitBranchCheckItem)
- for e := commits.Front(); e != nil; e = e.Next() {
- commitChecks[e.Value.(*git.Commit).ID.String()] = commitBranchCheckItem{
- Commit: e.Value.(*git.Commit),
+ for _, commit := range commits {
+ commitChecks[commit.ID.String()] = &commitBranchCheckItem{
+ Commit: commit,
Checked: false,
}
}
@@ -1316,8 +1306,8 @@ func getCommitIDsFromRepo(repo *Repository, oldCommitID, newCommitID, baseBranch
return
}
- for e := commits.Back(); e != nil; e = e.Prev() {
- commitID := e.Value.(*git.Commit).ID.String()
+ for i := len(commits) - 1; i >= 0; i-- {
+ commitID := commits[i].ID.String()
if item, ok := commitChecks[commitID]; ok && item.Checked {
commitIDs = append(commitIDs, commitID)
}
@@ -1331,64 +1321,49 @@ type commitBranchCheckItem struct {
Checked bool
}
-func commitBranchCheck(gitRepo *git.Repository, startCommit *git.Commit, endCommitID, baseBranch string, commitList map[string]commitBranchCheckItem) (err error) {
- var (
- item commitBranchCheckItem
- ok bool
- listItem *list.Element
- tmp string
- )
-
+func commitBranchCheck(gitRepo *git.Repository, startCommit *git.Commit, endCommitID, baseBranch string, commitList map[string]*commitBranchCheckItem) error {
if startCommit.ID.String() == endCommitID {
- return
+ return nil
}
- checkStack := list.New()
- checkStack.PushBack(startCommit.ID.String())
- listItem = checkStack.Back()
+ checkStack := make([]string, 0, 10)
+ checkStack = append(checkStack, startCommit.ID.String())
- for listItem != nil {
- tmp = listItem.Value.(string)
- checkStack.Remove(listItem)
+ for len(checkStack) > 0 {
+ commitID := checkStack[0]
+ checkStack = checkStack[1:]
- if item, ok = commitList[tmp]; !ok {
- listItem = checkStack.Back()
+ item, ok := commitList[commitID]
+ if !ok {
continue
}
if item.Commit.ID.String() == endCommitID {
- listItem = checkStack.Back()
continue
}
- if err = item.Commit.LoadBranchName(); err != nil {
- return
+ if err := item.Commit.LoadBranchName(); err != nil {
+ return err
}
if item.Commit.Branch == baseBranch {
- listItem = checkStack.Back()
continue
}
if item.Checked {
- listItem = checkStack.Back()
continue
}
item.Checked = true
- commitList[tmp] = item
parentNum := item.Commit.ParentCount()
for i := 0; i < parentNum; i++ {
- var parentCommit *git.Commit
- parentCommit, err = item.Commit.Parent(i)
+ parentCommit, err := item.Commit.Parent(i)
if err != nil {
- return
+ return err
}
- checkStack.PushBack(parentCommit.ID.String())
+ checkStack = append(checkStack, parentCommit.ID.String())
}
-
- listItem = checkStack.Back()
}
return nil
}