From 46aff8bcc4b38a51fda8ac18faf50034412f664e Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Mon, 18 Feb 2019 08:48:14 -0500 Subject: [PATCH] reference layer data for source of truth on index --- filetree/node.go | 1 - image/docker_image.go | 10 +++++----- runtime/export.go | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/filetree/node.go b/filetree/node.go index f9b2eb4..8447602 100644 --- a/filetree/node.go +++ b/filetree/node.go @@ -303,7 +303,6 @@ func (node *FileNode) compare(other *FileNode) DiffType { if node.Name != other.Name { panic("comparing mismatched nodes") } - // TODO: fails on nil return node.Data.FileInfo.Compare(other.Data.FileInfo) } diff --git a/image/docker_image.go b/image/docker_image.go index ca259ab..ef415ef 100644 --- a/image/docker_image.go +++ b/image/docker_image.go @@ -140,18 +140,18 @@ func (image *dockerImageAnalyzer) Analyze() (*AnalysisResult, error) { // as you iterate chronologically through history (ignoring history items that have no layer contents) layerIdx := len(image.trees) - 1 tarPathIdx := 0 - for idx := 0; idx < len(config.History); idx++ { + for histIdx := 0; histIdx < len(config.History); histIdx++ { // ignore empty layers, we are only observing layers with content - if config.History[idx].EmptyLayer { + if config.History[histIdx].EmptyLayer { continue } tree := image.trees[(len(image.trees)-1)-layerIdx] - config.History[idx].Size = uint64(tree.FileSize) + config.History[histIdx].Size = uint64(tree.FileSize) image.layers[layerIdx] = &dockerLayer{ - history: config.History[idx], - index: layerIdx, + history: config.History[histIdx], + index: tarPathIdx, tree: image.trees[layerIdx], tarPath: manifest.LayerTarPaths[tarPathIdx], } diff --git a/runtime/export.go b/runtime/export.go index 39673be..48f768a 100644 --- a/runtime/export.go +++ b/runtime/export.go @@ -17,7 +17,7 @@ func newExport(analysis *image.AnalysisResult) *export { idx := (len(analysis.Layers) - 1) - revIdx data.Layer[idx] = exportLayer{ - Index: idx, + Index: layer.Index(), DigestID: layer.Id(), SizeBytes: layer.Size(), Command: layer.Command(),