Browse Source

Fix memory leak

Vova Tkach 5 years ago
parent
commit
65a6d3e847
2 changed files with 8 additions and 0 deletions
  1. 3 0
      modules/module_api.go
  2. 5 0
      modules/module_api_images.go

+ 3 - 0
modules/module_api.go

@@ -36,6 +36,7 @@ func (this *Modules) RegisterModule_Api() *Module {
 					// Make empty file
 					if file, err := os.Create(target_file); err == nil {
 						file.Write(data)
+						file.Close()
 					}
 
 					// Make regular XML
@@ -45,6 +46,7 @@ func (this *Modules) RegisterModule_Api() *Module {
 					wrap.RemoveProductXmlCacheFile()
 					if file, err := os.Create(target_file); err == nil {
 						file.Write(data)
+						file.Close()
 					}
 
 					wrap.W.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
@@ -168,6 +170,7 @@ func (this *Modules) RegisterModule_ApiProducts() *Module {
 					// Save file
 					if file, err := os.Create(target_file); err == nil {
 						file.Write(data)
+						file.Close()
 					}
 
 					wrap.W.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")

+ 5 - 0
modules/module_api_images.go

@@ -35,6 +35,11 @@ func (this *Modules) api_GenerateImage(wrap *wrapper.Wrapper, width, height int,
 	var out_bytes bytes.Buffer
 	out := bufio.NewWriter(&out_bytes)
 
+	defer func() {
+		out.Flush()
+		out_bytes.Reset()
+	}()
+
 	if file_ext == "image/png" {
 		imaging.Encode(out, src, imaging.PNG)
 	} else if file_ext == "image/jpeg" {