diff options
| author | Hajime Hoshi <hajimehoshi@gmail.com> | 2020-02-02 14:55:29 +0900 |
|---|---|---|
| committer | Hajime Hoshi <hajimehoshi@gmail.com> | 2020-02-02 09:23:27 +0000 |
| commit | 753d56d3642eb83848aa39e65982a9fc77e722d7 (patch) | |
| tree | 544d709cf474c6afcde30f5333fe7b05035ae277 /src/syscall | |
| parent | 866920a07351ad5663cc712c31a0f7b5631bc85c (diff) | |
| download | go-753d56d3642eb83848aa39e65982a9fc77e722d7.tar.xz | |
syscall: release a js.Func object in fsCall
A js.Func object in fsCall was created for each call but never
released. This CL fixes this.
Change-Id: I2e2b504cbf4fb130b8cfe890a66d3a66aadf56a4
Reviewed-on: https://go-review.googlesource.com/c/go/+/217417
Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Agniva De Sarker <agniva.quicksilver@gmail.com>
Reviewed-by: Richard Musiol <neelance@gmail.com>
Diffstat (limited to 'src/syscall')
| -rw-r--r-- | src/syscall/fs_js.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/syscall/fs_js.go b/src/syscall/fs_js.go index 16d9f58b8c..c1cac97d91 100644 --- a/src/syscall/fs_js.go +++ b/src/syscall/fs_js.go @@ -495,7 +495,7 @@ func fsCall(name string, args ...interface{}) (js.Value, error) { } c := make(chan callResult, 1) - jsFS.Call(name, append(args, js.FuncOf(func(this js.Value, args []js.Value) interface{} { + f := js.FuncOf(func(this js.Value, args []js.Value) interface{} { var res callResult if len(args) >= 1 { // on Node.js 8, fs.utimes calls the callback without any arguments @@ -511,7 +511,9 @@ func fsCall(name string, args ...interface{}) (js.Value, error) { c <- res return nil - }))...) + }) + defer f.Release() + jsFS.Call(name, append(args, f)...) res := <-c return res.val, res.err } |
