From f1eef919812bb3ec68ed12802713eb394b559a33 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Mon, 24 Jan 2022 15:27:11 -0800 Subject: [PATCH] windows.gdiplus: call GdiplusStartup and GdiplusShutdown in startup/shutdown hooks --- basis/images/loader/gdiplus/gdiplus.factor | 7 ++----- basis/windows/gdiplus/gdiplus.factor | 5 +++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/basis/images/loader/gdiplus/gdiplus.factor b/basis/images/loader/gdiplus/gdiplus.factor index 0f4835e683..943e5cc29f 100644 --- a/basis/images/loader/gdiplus/gdiplus.factor +++ b/basis/images/loader/gdiplus/gdiplus.factor @@ -88,9 +88,6 @@ ERROR: unsupported-pixel-format component-order ; : mime-type>clsid ( mime-type -- clsid ) image-encoders [ MimeType>> alien>native-string = ] with find nip Clsid>> ; -: startup-gdi+ ( -- ) - start-gdi+ &stop-gdi+ drop ; - : write-image-to-stream ( image stream extension -- ) [ image>gdi+-bitmap ] [ stream>IStream &com-release ] @@ -100,10 +97,10 @@ ERROR: unsupported-pixel-format component-order ; PRIVATE> M: gdi+-image stream>image* - drop startup-gdi+ + drop stream>gdi+-bitmap gdi+-bitmap>data data>image ; M: gdi+-image image>stream - drop startup-gdi+ output-stream get swap write-image-to-stream ; + drop output-stream get swap write-image-to-stream ; diff --git a/basis/windows/gdiplus/gdiplus.factor b/basis/windows/gdiplus/gdiplus.factor index 83d285b0de..e9593d5768 100644 --- a/basis/windows/gdiplus/gdiplus.factor +++ b/basis/windows/gdiplus/gdiplus.factor @@ -1648,3 +1648,8 @@ CONSTANT: standard-gdi+-startup-input GdiplusShutdown ; DESTRUCTOR: stop-gdi+ + +SYMBOL: gdi-token + +[ start-gdi+ gdi-token set-global ] "windows.gdiplus" add-startup-hook +[ gdi-token get-global [ stop-gdi+ ] when* ] "windows.gdiplus" add-shutdown-hook -- 2.34.1