diff options
author | bptato <nincsnevem662@gmail.com> | 2025-02-01 15:54:18 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-02-01 15:54:35 +0100 |
commit | 81c89e6de45c704d319e01ff1e641e3066705c9a (patch) | |
tree | a7c4a89c968998cd68e3ffb899b5dbd2240f28ac /src/local | |
parent | f7783ca551c7e64094b557da67a93537863c4d81 (diff) | |
download | chawan-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.nim | 14 |
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)) |