Ver código fonte

Fix memory leak

DarthSim 7 anos atrás
pai
commit
e41a4ab13e
2 arquivos alterados com 6 adições e 1 exclusões
  1. 1 1
      process.go
  2. 5 0
      vips.h

+ 1 - 1
process.go

@@ -257,7 +257,7 @@ func processImage(data []byte, imgtype imageType, po processingOptions, t *timer
 
 	// Finally, save
 	var ptr unsafe.Pointer
-	defer C.g_free(C.gpointer(ptr))
+	defer C.g_free_go(&ptr)
 
 	imgsize := C.size_t(0)
 

+ 5 - 0
vips.h

@@ -26,6 +26,11 @@ clear_image(VipsImage **in) {
   g_clear_object(in);
 }
 
+void
+g_free_go(void **buf) {
+  g_free(*buf);
+}
+
 VipsAccess
 access_mode(int random) {
   if (random > 0) return VIPS_ACCESS_RANDOM;