good morning!!!!

Skip to content
Snippets Groups Projects
Commit bfab1d93 authored by atvanguard's avatar atvanguard
Browse files

dev: rename CompareProposerPriority to Cmp, add nil check (2.27)

parent 48d6d76d
No related branches found
No related tags found
No related merge requests found
......@@ -29,18 +29,23 @@ func NewValidator(address common.Address, votingPower int64) *Validator {
}
}
// Creates a new copy of the validator so we can mutate ProposerPriority.
// Copy creates a new copy of the validator so we can mutate ProposerPriority.
// Panics if the validator is nil.
func (v *Validator) Copy() *Validator {
vCopy := *v
return &vCopy
}
// Returns the one with higher ProposerPriority.
func (v *Validator) CompareProposerPriority(other *Validator) *Validator {
// Cmp returns the one validator with a higher ProposerPriority.
// If ProposerPriority is same, it returns the validator with lexicographically smaller address
func (v *Validator) Cmp(other *Validator) *Validator {
// if both of v and other are nil, nil will be returned and that could possibly lead to nil pointer dereference bubbling up the stack
if v == nil {
return other
}
if other == nil {
return v
}
if v.ProposerPriority > other.ProposerPriority {
return v
} else if v.ProposerPriority < other.ProposerPriority {
......@@ -53,7 +58,6 @@ func (v *Validator) CompareProposerPriority(other *Validator) *Validator {
return other
} else {
panic("Cannot compare identical validators")
return nil
}
}
}
......
......@@ -182,7 +182,7 @@ func computeMaxMinPriorityDiff(vals *ValidatorSet) int64 {
func (vals *ValidatorSet) getValWithMostPriority() *Validator {
var res *Validator
for _, val := range vals.Validators {
res = res.CompareProposerPriority(val)
res = res.Cmp(val)
}
return res
}
......@@ -298,7 +298,7 @@ func (vals *ValidatorSet) findProposer() *Validator {
var proposer *Validator
for _, val := range vals.Validators {
if proposer == nil || !bytes.Equal(val.Address.Bytes(), proposer.Address.Bytes()) {
proposer = proposer.CompareProposerPriority(val)
proposer = proposer.Cmp(val)
}
}
return proposer
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment