diff --git a/dfssc/common/file.go b/dfssc/common/file.go index 09d25f24114fd78969a15bcb160d65540545346e..f19cb76d0df3c4a280085b1c841a6b2983404ba5 100644 --- a/dfssc/common/file.go +++ b/dfssc/common/file.go @@ -2,6 +2,7 @@ package common import ( "encoding/json" + "errors" "dfss/dfssp/contract" ) @@ -15,5 +16,9 @@ func UnmarshalDFSSFile(data []byte) (*contract.JSON, error) { return nil, err } + if c.File == nil { + return nil, errors.New("empty file description") + } + return c, nil } diff --git a/gui/showcontract/showcontract.go b/gui/showcontract/showcontract.go index 64602a53de9cceedf25ed522b3b79f2b497d0c66..0da33bf6d8e87ab3ab08a7f02c60c41d64d1942d 100644 --- a/gui/showcontract/showcontract.go +++ b/gui/showcontract/showcontract.go @@ -2,9 +2,9 @@ package showcontract import ( - "encoding/json" "io/ioutil" + "dfss/dfssc/common" "dfss/dfssp/contract" "github.com/visualfc/goqt/ui" ) @@ -49,8 +49,7 @@ func Load(filename string) *contract.JSON { return nil } - contract := new(contract.JSON) - err = json.Unmarshal(data, contract) + contract, err := common.UnmarshalDFSSFile(data) if err != nil { return nil }