From 4dbbe4f51a22a9ec335fbf2f6e3981132f868312 Mon Sep 17 00:00:00 2001 From: unclejack Date: Tue, 4 Nov 2014 15:45:46 +0200 Subject: [PATCH] image: stream img JSON & Decode in LoadImage Docker-DCO-1.1-Signed-off-by: Cristian Staretu (github: unclejack) --- image/image.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/image/image.go b/image/image.go index 47df76d9f3..dfa8e9a6e3 100644 --- a/image/image.go +++ b/image/image.go @@ -38,14 +38,18 @@ type Image struct { } func LoadImage(root string) (*Image, error) { - // Load the json data - jsonData, err := ioutil.ReadFile(jsonPath(root)) + // Open the JSON file to decode by streaming + jsonSource, err := os.Open(jsonPath(root)) if err != nil { return nil, err } - img := &Image{} + defer jsonSource.Close() - if err := json.Unmarshal(jsonData, img); err != nil { + img := &Image{} + dec := json.NewDecoder(jsonSource) + + // Decode the JSON data + if err := dec.Decode(img); err != nil { return nil, err } if err := utils.ValidateID(img.ID); err != nil {