Fix a panic issue of loading an image from cache

This commit is contained in:
Kanle Shi 2019-12-13 14:49:38 +08:00
parent f0367ee72d
commit 9729daa6d4

View file

@ -25,10 +25,11 @@ type Image struct {
func (cv *Canvas) LoadImage(src interface{}) (*Image, error) { func (cv *Canvas) LoadImage(src interface{}) (*Image, error) {
if img, ok := src.(*Image); ok { if img, ok := src.(*Image); ok {
return img, nil return img, nil
} else if img, ok := cv.images[src]; ok { } else if _, ok := src.([]byte); !ok {
if img, ok := cv.images[src]; ok {
return img, nil return img, nil
} }
}
var srcImg image.Image var srcImg image.Image
switch v := src.(type) { switch v := src.(type) {
case image.Image: case image.Image:
@ -59,7 +60,9 @@ func (cv *Canvas) LoadImage(src interface{}) (*Image, error) {
return nil, err return nil, err
} }
cvimg := &Image{cv: cv, img: backendImg} cvimg := &Image{cv: cv, img: backendImg}
if _, ok := src.([]byte); !ok {
cv.images[src] = cvimg cv.images[src] = cvimg
}
return cvimg, nil return cvimg, nil
} }