about summary refs log tree commit diff stats
path: root/src/local
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-02-01 15:54:18 +0100
committerbptato <nincsnevem662@gmail.com>2025-02-01 15:54:35 +0100
commit81c89e6de45c704d319e01ff1e641e3066705c9a (patch)
treea7c4a89c968998cd68e3ffb899b5dbd2240f28ac /src/local
parentf7783ca551c7e64094b557da67a93537863c4d81 (diff)
downloadchawan-81c89e6de45c704d319e01ff1e641e3066705c9a.tar.gz
dom, layout: fix empty canvas cache ids
ok now I understand why I made shareCachedItem crash...
Diffstat (limited to 'src/local')
-rw-r--r--src/local/pager.nim14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index 388818f5..ca85b5df 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -1005,8 +1005,10 @@ proc loadCachedImage(pager: Pager; container: Container; image: PosBitmap;
     erry: erry,
     dispw: dispw
   )
-  pager.loader.shareCachedItem(bmp.cacheId, pager.loader.clientPid,
-    container.process)
+  if not pager.loader.shareCachedItem(bmp.cacheId, pager.loader.clientPid,
+      container.process):
+    pager.alert("Error: received incorrect cache ID from buffer")
+    return
   let imageMode = pager.term.imageMode
   pager.loader.fetch(newRequest(
     newURL("img-codec+" & bmp.contentType.after('/') & ":decode").get,
@@ -2694,11 +2696,11 @@ proc connected3(pager: Pager; container: Container; stream: SocketStream;
       # loading from cache; now both the buffer and us hold a new reference
       # to the cached item, but it's only shared with the buffer. add a
       # pager ref too.
-      loader.shareCachedItem(container.cacheId, loader.clientPid)
+      discard loader.shareCachedItem(container.cacheId, loader.clientPid)
     let pid = container.process
     var outCacheId = container.cacheId
     if not redirected:
-      loader.shareCachedItem(container.cacheId, pid)
+      discard loader.shareCachedItem(container.cacheId, pid)
       loader.resume(istreamOutputId)
     else:
       outCacheId = loader.addCacheFile(ostreamOutputId, pid)
@@ -2714,10 +2716,10 @@ proc connected3(pager: Pager; container: Container; stream: SocketStream;
     stream.withPacketWriter w:
       w.sendAux.add(cstream.fd)
     # buffer is cloned, just share the parent's cached source
-    loader.shareCachedItem(container.cacheId, container.process)
+    discard loader.shareCachedItem(container.cacheId, container.process)
     # also add a reference here; it will be removed when the container is
     # deleted
-    loader.shareCachedItem(container.cacheId, loader.clientPid)
+    discard loader.shareCachedItem(container.cacheId, loader.clientPid)
     container.setCloneStream(bufStream)
   cstream.sclose()
   loader.put(ContainerData(stream: stream, container: container))