summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2023-05-29 21:31:53 +0200
committerGitHub <noreply@github.com>2023-05-29 21:31:53 +0200
commit244565397ddcd4af5a49b47b7874fe82e018e429 (patch)
tree8cfe4f6bab5e340abff72ee24c9a8651a7bf99b0
parentef060e818468da0bd53d52a501443ce3d01f06a1 (diff)
downloadNim-244565397ddcd4af5a49b47b7874fe82e018e429.tar.gz
fixes #21734; backport (#21957)
-rw-r--r--lib/pure/ioselects/ioselectors_epoll.nim2
-rw-r--r--lib/pure/selectors.nim4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/pure/ioselects/ioselectors_epoll.nim b/lib/pure/ioselects/ioselectors_epoll.nim
index 08cb6ed74..510de8c51 100644
--- a/lib/pure/ioselects/ioselectors_epoll.nim
+++ b/lib/pure/ioselects/ioselectors_epoll.nim
@@ -138,7 +138,7 @@ template checkFd(s, f) =
     var numFD = s.numFD
     while numFD <= f: numFD *= 2
     when hasThreadSupport:
-      s.fds = reallocSharedArray(s.fds, numFD)
+      s.fds = reallocSharedArray(s.fds, s.numFD, numFD)
     else:
       s.fds.setLen(numFD)
     for i in s.numFD ..< numFD:
diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim
index fc65e0e9b..2d10e3f32 100644
--- a/lib/pure/selectors.nim
+++ b/lib/pure/selectors.nim
@@ -247,8 +247,8 @@ else:
     proc allocSharedArray[T](nsize: int): ptr SharedArray[T] =
       result = cast[ptr SharedArray[T]](allocShared0(sizeof(T) * nsize))
 
-    proc reallocSharedArray[T](sa: ptr SharedArray[T], nsize: int): ptr SharedArray[T] =
-      result = cast[ptr SharedArray[T]](reallocShared(sa, sizeof(T) * nsize))
+    proc reallocSharedArray[T](sa: ptr SharedArray[T], oldsize, nsize: int): ptr SharedArray[T] =
+      result = cast[ptr SharedArray[T]](reallocShared0(sa, oldsize * sizeof(T), sizeof(T) * nsize))
 
     proc deallocSharedArray[T](sa: ptr SharedArray[T]) =
       deallocShared(cast[pointer](sa))