about summary refs log tree commit diff stats
path: root/src/loader
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-03-27 16:13:05 +0100
committerbptato <nincsnevem662@gmail.com>2024-03-27 16:13:05 +0100
commit0aeb7c100c5708256c5c762e6b1587460a35c4a4 (patch)
tree0d3b9b11dc3652740b19ab263b33867bea621b0a /src/loader
parent260cfd57fba47acd18a26770027afbd4432674f9 (diff)
downloadchawan-0aeb7c100c5708256c5c762e6b1587460a35c4a4.tar.gz
buffer: fix cancel()
* fix mismatch between return value & read value that would either crash
  or freeze the browser depending on its mood
* add an assertion to detect the above footgun
* fix some resource leaks
* fix iteration over a table that called a function which altered the
  table in buffer's cancel()
* if user cancels before anything is loaded, destroy the container too
Diffstat (limited to 'src/loader')
-rw-r--r--src/loader/loader.nim1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/loader/loader.nim b/src/loader/loader.nim
index 5aed021e..295062b5 100644
--- a/src/loader/loader.nim
+++ b/src/loader/loader.nim
@@ -987,6 +987,7 @@ proc onConnected*(loader: FileLoader, fd: int) =
     r.sread(msg) # packet 1
     loader.unregisterFun(fd)
     loader.unregistered.add(fd)
+    stream.sclose()
     let err = newTypeError("NetworkError when attempting to fetch resource")
     promise.resolve(JSResult[Response].err(err))
   loader.connecting.del(fd)