go-libwebp

Experimental translation from libwebp to Go source.
Log | Files | Refs | README | LICENSE

commit 8979a905cefe51e1defa798ca9ad938bff72c326
parent 66763fde44257f5366633282ba6124b166f250a5
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Tue, 26 Mar 2024 14:48:56 +0800

lib/dynamic: nil guard function pointers

In the case of bad init we can avoid panicking.

Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>

Diffstat:
Mlib/dynamic/webp/encode_default.go | 4++++
Mlib/dynamic/webp/lib.go | 3+++
2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/lib/dynamic/webp/encode_default.go b/lib/dynamic/webp/encode_default.go @@ -3,6 +3,7 @@ package webp import ( + "fmt" "image" "io" @@ -13,5 +14,8 @@ func encodeImpl(w io.Writer, m *image.NRGBA, quality float32) error { if quality >= 1.0 { return common.Encode(w, m, quality, wrappedLossless, WebPFree) } + if WebPEncodeRGBA == nil || WebPFree == nil { + return fmt.Errorf("functions not initialized") + } return common.Encode(w, m, quality, WebPEncodeRGBA, WebPFree) } diff --git a/lib/dynamic/webp/lib.go b/lib/dynamic/webp/lib.go @@ -57,6 +57,9 @@ func Init() (err error) { } func DecodeImpl(buf []byte) (image.Image, error) { + if WebPDecodeRGBA == nil || WebPFree == nil { + return nil, fmt.Errorf("functions not initialized") + } return common.Decode(buf, WebPDecodeRGBA, WebPFree) }