about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-12-18 23:38:18 +0100
committerbptato <nincsnevem662@gmail.com>2024-12-18 23:38:18 +0100
commit2625bb39b79bba914114e1ae37ce69a875e06786 (patch)
tree9e5d823e1aaa049abeee0d406130dca3b32d0fc1 /src
parente56ad3318cddf8c6df8a7af7682b2233229f3ad1 (diff)
downloadchawan-2625bb39b79bba914114e1ae37ce69a875e06786.tar.gz
pager: do not crash browser when deleting a crashed buffer
Diffstat (limited to 'src')
-rw-r--r--src/local/pager.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index 349b9006..f1e1cd7d 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -3015,7 +3015,8 @@ proc acceptBuffers(pager: Pager) =
       stream.sclose()
     elif container.process != -1: # connecting to buffer process
       let i = pager.findProcMapItem(container.process)
-      pager.procmap.del(i)
+      if i != -1:
+        pager.procmap.del(i)
     elif (let item = pager.findConnectingContainer(container); item != nil):
       # connecting to URL
       let stream = item.stream
@@ -3163,6 +3164,9 @@ proc handleError(pager: Pager; fd: int) =
         pager.consoleWrapper.container = nil
       pager.pollData.unregister(fd)
       pager.loader.unset(fd)
+      if container.iface != nil:
+        container.iface.stream.sclose()
+        container.iface = nil
       doAssert pager.consoleWrapper.container != nil
       pager.showConsole()
     else: