Use []pullRefName instead of []*pullRefName

We are passing the values, don't really need the pointer sharing semantics,
and the structures are small enough, and the arrays short enough,
that we very likely lose on the indirect accesses more than we save on
quicker copying of the slices when extending them.  Value semantics
is safer anyway.

Should not change behavior.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
This commit is contained in:
Miloslav Trmač 2018-07-28 05:23:20 +02:00 committed by Atomic Bot
parent 83f40de965
commit dae6200662
2 changed files with 14 additions and 14 deletions

View file

@ -62,11 +62,11 @@ type pullRefName struct {
dstName string
}
func singlePullRefNameGoal(rn *pullRefName) []*pullRefName {
return []*pullRefName{rn}
func singlePullRefNameGoal(rn pullRefName) []pullRefName {
return []pullRefName{rn}
}
func getPullRefName(srcRef types.ImageReference, destName string) *pullRefName {
func getPullRefName(srcRef types.ImageReference, destName string) pullRefName {
imgPart, err := decompose(destName)
if err == nil && !imgPart.hasRegistry {
// If the image doesn't have a registry, set it as the default repo
@ -79,7 +79,7 @@ func getPullRefName(srcRef types.ImageReference, destName string) *pullRefName {
if srcRef.DockerReference() != nil {
reference = srcRef.DockerReference().String()
}
return &pullRefName{
return pullRefName{
image: destName,
srcRef: srcRef,
dstName: reference,
@ -87,7 +87,7 @@ func getPullRefName(srcRef types.ImageReference, destName string) *pullRefName {
}
// refNamesFromImageReference returns a list of pullRefName for a single ImageReference, depending on the used transport.
func refNamesFromImageReference(ctx context.Context, srcRef types.ImageReference, imgName string, sc *types.SystemContext) ([]*pullRefName, error) {
func refNamesFromImageReference(ctx context.Context, srcRef types.ImageReference, imgName string, sc *types.SystemContext) ([]pullRefName, error) {
// supports pulling from docker-archive, oci, and registries
switch srcRef.Transport().Name() {
case DockerArchive:
@ -121,7 +121,7 @@ func refNamesFromImageReference(ctx context.Context, srcRef types.ImageReference
}
// Need to load in all the repo tags from the manifest
res := []*pullRefName{}
res := []pullRefName{}
for _, dst := range manifest[0].RepoTags {
pullInfo := getPullRefName(srcRef, dst)
res = append(res, pullInfo)
@ -262,7 +262,7 @@ func hasShaInInputName(inputName string) bool {
// refNamesFromPossiblyUnqualifiedName looks at a decomposed image and determines the possible
// image names to try pulling in combination with the registries.conf file as well
func refNamesFromPossiblyUnqualifiedName(inputName string) ([]*pullRefName, error) {
func refNamesFromPossiblyUnqualifiedName(inputName string) ([]pullRefName, error) {
decomposedImage, err := decompose(inputName)
if err != nil {
return nil, err
@ -287,14 +287,14 @@ func refNamesFromPossiblyUnqualifiedName(inputName string) ([]*pullRefName, erro
} else {
ps.dstName = ps.image
}
return singlePullRefNameGoal(&ps), nil
return singlePullRefNameGoal(ps), nil
}
searchRegistries, err := registries.GetRegistries()
if err != nil {
return nil, err
}
var pullNames []*pullRefName
var pullNames []pullRefName
for _, registry := range searchRegistries {
decomposedImage.registry = registry
imageName := decomposedImage.assembleWithTransport()
@ -310,7 +310,7 @@ func refNamesFromPossiblyUnqualifiedName(inputName string) ([]*pullRefName, erro
srcRef: srcRef,
}
ps.dstName = ps.image
pullNames = append(pullNames, &ps)
pullNames = append(pullNames, ps)
}
return pullNames, nil
}
@ -325,8 +325,8 @@ func (i *Image) refPairsFromPossiblyUnqualifiedName() ([]*pullRefPair, error) {
return i.imageruntime.pullRefPairsFromRefNames(refNames)
}
// pullRefPairsFromNames converts a []*pullRefName to []*pullRefPair
func (ir *Runtime) pullRefPairsFromRefNames(refNames []*pullRefName) ([]*pullRefPair, error) {
// pullRefPairsFromNames converts a []pullRefName to []*pullRefPair
func (ir *Runtime) pullRefPairsFromRefNames(refNames []pullRefName) ([]*pullRefPair, error) {
// Here we construct the destination references
res := make([]*pullRefPair, len(refNames))
for i, rn := range refNames {

View file

@ -73,7 +73,7 @@ func TestGetPullRefName(t *testing.T) {
require.NoError(t, err, c.srcName)
res := getPullRefName(srcRef, c.destName)
assert.Equal(t, &pullRefName{image: c.expectedImage, srcRef: srcRef, dstName: c.expectedDstName}, res,
assert.Equal(t, pullRefName{image: c.expectedImage, srcRef: srcRef, dstName: c.expectedDstName}, res,
fmt.Sprintf("%#v %#v", c.srcName, c.destName))
}
}
@ -180,7 +180,7 @@ func TestRefNamesFromImageReference(t *testing.T) {
require.NoError(t, err, c.srcName)
require.Len(t, res, len(c.expected), c.srcName)
for i, e := range c.expected {
assert.Equal(t, &pullRefName{image: e.image, srcRef: srcRef, dstName: e.dstName}, res[i], fmt.Sprintf("%s #%d", c.srcName, i))
assert.Equal(t, pullRefName{image: e.image, srcRef: srcRef, dstName: e.dstName}, res[i], fmt.Sprintf("%s #%d", c.srcName, i))
}
}
}