about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-07-13 19:35:34 +0200
committerbptato <nincsnevem662@gmail.com>2024-07-13 19:51:42 +0200
commit224640dc58ee7a4837597ed7a10a17dac4d95629 (patch)
treed2a2b40081a65e49d23bfb4df2725236542e201c
parentbf231d2e50c342fdd688b7e944ff5c934610e08b (diff)
downloadchawan-224640dc58ee7a4837597ed7a10a17dac4d95629.tar.gz
32-bit compilation fixes
It seems registerHandle/unregister doesn't accept cint as handles. Not
sure why it even works on 64-bit targets... (maybe some converter
weirdness?)

Seems best to explicitly cast it away.
-rw-r--r--src/loader/loader.nim10
-rw-r--r--src/local/client.nim2
-rw-r--r--src/local/pager.nim16
-rw-r--r--src/server/buffer.nim6
4 files changed, 17 insertions, 17 deletions
diff --git a/src/loader/loader.nim b/src/loader/loader.nim
index 78f5f0d7..29913031 100644
--- a/src/loader/loader.nim
+++ b/src/loader/loader.nim
@@ -176,12 +176,12 @@ type PushBufferResult = enum
 
 proc register(ctx: LoaderContext; output: OutputHandle) =
   assert not output.registered
-  ctx.selector.registerHandle(output.ostream.fd, {Write}, 0)
+  ctx.selector.registerHandle(int(output.ostream.fd), {Write}, 0)
   output.registered = true
 
 proc unregister(ctx: LoaderContext; output: OutputHandle) =
   assert output.registered
-  ctx.selector.unregister(output.ostream.fd)
+  ctx.selector.unregister(int(output.ostream.fd))
   output.registered = false
 
 # Either write data to the target output, or append it to the list of buffers to
@@ -271,7 +271,7 @@ proc addFd(ctx: LoaderContext; handle: LoaderHandle) =
   let output = handle.output
   output.ostream.setBlocking(false)
   handle.istream.setBlocking(false)
-  ctx.selector.registerHandle(handle.istream.fd, {Read}, 0)
+  ctx.selector.registerHandle(int(handle.istream.fd), {Read}, 0)
   assert handle.istream.fd notin ctx.handleMap
   assert output.ostream.fd notin ctx.outputMap
   ctx.handleMap[handle.istream.fd] = handle
@@ -826,7 +826,7 @@ proc finishCycle(ctx: LoaderContext; unregRead: var seq[LoaderHandle];
   # unregistered handles to nil.
   for handle in unregRead:
     if handle.istream != nil:
-      ctx.selector.unregister(handle.istream.fd)
+      ctx.selector.unregister(int(handle.istream.fd))
       ctx.handleMap.del(handle.istream.fd)
       if handle.parser != nil:
         handle.finishParse()
@@ -847,7 +847,7 @@ proc finishCycle(ctx: LoaderContext; unregRead: var seq[LoaderHandle];
         handle.outputs.del(i)
         if handle.outputs.len == 0 and handle.istream != nil:
           # premature end of all output streams; kill istream too
-          ctx.selector.unregister(handle.istream.fd)
+          ctx.selector.unregister(int(handle.istream.fd))
           ctx.handleMap.del(handle.istream.fd)
           if handle.parser != nil:
             handle.finishParse()
diff --git a/src/local/client.nim b/src/local/client.nim
index 7a218a11..a852d8cd 100644
--- a/src/local/client.nim
+++ b/src/local/client.nim
@@ -405,7 +405,7 @@ proc acceptBuffers(client: Client) =
     elif (let i = pager.findConnectingContainer(container); i != -1):
       # connecting to URL
       let stream = pager.connectingContainers[i].stream
-      client.selector.unregister(stream.fd)
+      client.selector.unregister(int(stream.fd))
       stream.sclose()
       pager.connectingContainers.del(i)
   let registerFun = proc(fd: int) =
diff --git a/src/local/pager.nim b/src/local/pager.nim
index 765bb89d..dfa7d014 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -1937,6 +1937,10 @@ proc connected(pager: Pager; container: Container; response: Response) =
     pager.deleteContainer(container, container.find(ndAny))
     pager.refreshStatusMsg()
 
+proc unregisterFd(pager: Pager; fd: int) =
+  pager.selector.unregister(fd)
+  pager.loader.unregistered.add(fd)
+
 # true if done, false if keep
 proc handleConnectingContainer*(pager: Pager; i: int) =
   let item = pager.connectingContainers[i]
@@ -1961,8 +1965,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) =
       pager.fail(container, msg)
       # done
       pager.connectingContainers.del(i)
-      pager.selector.unregister(item.stream.fd)
-      pager.loader.unregistered.add(item.stream.fd)
+      pager.unregisterFd(int(item.stream.fd))
       stream.sclose()
   of ccsBeforeStatus:
     var r = stream.initPacketReader()
@@ -1981,8 +1984,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) =
     r.sread(response.headers)
     # done
     pager.connectingContainers.del(i)
-    pager.selector.unregister(item.stream.fd)
-    pager.loader.unregistered.add(item.stream.fd)
+    pager.unregisterFd(int(item.stream.fd))
     let redirect = response.getRedirect(container.request)
     if redirect != nil:
       stream.sclose()
@@ -1993,8 +1995,7 @@ proc handleConnectingContainer*(pager: Pager; i: int) =
 proc handleConnectingContainerError*(pager: Pager; i: int) =
   let item = pager.connectingContainers[i]
   pager.fail(item.container, "loader died while loading")
-  pager.selector.unregister(item.stream.fd)
-  pager.loader.unregistered.add(item.stream.fd)
+  pager.unregisterFd(int(item.stream.fd))
   item.stream.sclose()
   pager.connectingContainers.del(i)
 
@@ -2067,8 +2068,7 @@ proc handleEvent0(pager: Pager; container: Container; event: ContainerEvent):
       dec pager.numload
       pager.deleteContainer(container, container.find(ndAny))
       pager.connectingContainers.del(i)
-      pager.selector.unregister(item.stream.fd)
-      pager.loader.unregistered.add(item.stream.fd)
+      pager.unregisterFd(int(item.stream.fd))
       item.stream.sclose()
   return true
 
diff --git a/src/server/buffer.nim b/src/server/buffer.nim
index 4c01e3d9..743fa46a 100644
--- a/src/server/buffer.nim
+++ b/src/server/buffer.nim
@@ -978,7 +978,7 @@ proc clone*(buffer: Buffer; newurl: URL): int {.proxy.} =
       doAssert outputId != -1 and stream != nil
       response.outputId = outputId
       response.body = stream
-      let fd = response.body.fd
+      let fd = int(response.body.fd)
       buffer.loader.ongoing[fd] = response
       buffer.selector.registerHandle(fd, {Read}, 0)
     if buffer.istream != nil:
@@ -1934,10 +1934,10 @@ proc launchBuffer*(config: BufferConfig; url: URL; attrs: WindowAttributes;
   r.sread(buffer.loader.key)
   r.sread(buffer.cacheId)
   let fd = pstream.recvFileHandle()
-  buffer.fd = fd
+  buffer.fd = int(fd)
   buffer.istream = newPosixStream(fd)
   buffer.istream.setBlocking(false)
-  buffer.selector.registerHandle(fd, {Read}, 0)
+  buffer.selector.registerHandle(int(fd), {Read}, 0)
   loader.registerFun = proc(fd: int) =
     buffer.selector.registerHandle(fd, {Read}, 0)
   loader.unregisterFun = proc(fd: int) =