summary refs log tree commit diff stats
path: root/lib/system
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2016-03-29 16:39:05 +0200
committerAraq <rumpf_a@web.de>2016-03-29 16:39:05 +0200
commit13a83c7fdd92af9cda38c0c9cfafe2d555b34206 (patch)
treeb6bb9f24c585975047130f3d9f2f8ebacb3cf134 /lib/system
parentdb2b2156581ffaaa63e7ff9c0a07ced540006956 (diff)
downloadNim-13a83c7fdd92af9cda38c0c9cfafe2d555b34206.tar.gz
Windows: fixes a regression; codegen might not know about & at this point
Diffstat (limited to 'lib/system')
-rw-r--r--lib/system/dyncalls.nim5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/system/dyncalls.nim b/lib/system/dyncalls.nim
index ba5e4bbeb..3b3d1f87d 100644
--- a/lib/system/dyncalls.nim
+++ b/lib/system/dyncalls.nim
@@ -109,9 +109,10 @@ elif defined(windows) or defined(dos):
   proc nimGetProcAddr(lib: LibHandle, name: cstring): ProcAddr =
     result = getProcAddress(cast[THINSTANCE](lib), name)
     if result != nil: return
+    var decorated: array[250, char]
     for i in countup(0, 50):
-      var decorated = "_" & $name & "@" & $(i * 4)
-      result = getProcAddress(cast[THINSTANCE](lib), cstring(decorated))
+      discard csprintf(decorated, "_%s@%ld", name, i*4)
+      result = getProcAddress(cast[THINSTANCE](lib), decorated)
       if result != nil: return
     procAddrError(name)