diff options
| author | trustable-code <krauter.simon@arcor.de> | 2018-04-08 03:01:28 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2018-04-08 03:01:28 +0200 |
| commit | 9fe87be1c8b1b0a60e9f6e2776d40f8bc12793f6 (patch) | |
| tree | 0567e8a68153e319ead35e3887450078b96d705a /src/nigui/private/gtk3/platform_impl.nim | |
| parent | 2195c9ec6a2e5cf1b633817c9e9aec6f9f730b75 (diff) | |
| download | NiGui-9fe87be1c8b1b0a60e9f6e2776d40f8bc12793f6.tar.gz NiGui-9fe87be1c8b1b0a60e9f6e2776d40f8bc12793f6.zip | |
Gtk: Fix memory leak on image saving
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index 09db57c..6bf791a 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -544,13 +544,16 @@ method loadFromFile(image: Image, filePath: string) = method saveToPngFile(image: Image, filePath: string) = let canvas = cast[CanvasImpl](image.fCanvas) var pixbuf = gdk_pixbuf_get_from_surface(canvas.fSurface, 0, 0, image.width.cint, image.height.cint) + defer: g_object_unref(pixbuf) var error: ptr GError if not gdk_pixbuf_save(pixbuf, filePath, "png", error.addr, nil, nil, nil): pRaiseGError(error) + method saveToJpegFile(image: Image, filePath: string, quality = 80) = let canvas = cast[CanvasImpl](image.fCanvas) var pixbuf = gdk_pixbuf_get_from_surface(canvas.fSurface, 0, 0, image.width.cint, image.height.cint) + defer: g_object_unref(pixbuf) var error: ptr GError if not gdk_pixbuf_save(pixbuf, filePath, "jpeg", error.addr, "quality", $quality, nil): pRaiseGError(error) |
