summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rwxr-xr-xlib/system.nim4
-rwxr-xr-xlib/system/sysstr.nim13
2 files changed, 9 insertions, 8 deletions
diff --git a/lib/system.nim b/lib/system.nim
index db78d2740..5f9a24ba9 100755
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -1532,7 +1532,7 @@ iterator fieldPairs*[S: tuple|object, T: tuple|object](x: S, y: T): tuple[
   ## The current implementation also has a bug that affects symbol binding
   ## in the loop body.
 
-proc `==`*[T: tuple|object](x, y: T): bool = 
+proc `==`*[T: tuple](x, y: T): bool = 
   ## generic ``==`` operator for tuples that is lifted from the components
   ## of `x` and `y`.
   for a, b in fields(x, y):
@@ -1557,7 +1557,7 @@ proc `<`*[T: tuple](x, y: T): bool =
     if c > 0: return false
   return false
 
-proc `$`*[T: tuple|object](x: T): string = 
+proc `$`*[T: tuple](x: T): string = 
   ## generic ``$`` operator for tuples that is lifted from the components
   ## of `x`. Example:
   ##
diff --git a/lib/system/sysstr.nim b/lib/system/sysstr.nim
index 2e60c6153..d62a987ff 100755
--- a/lib/system/sysstr.nim
+++ b/lib/system/sysstr.nim
@@ -73,12 +73,13 @@ proc cstrToNimstr(str: CString): NimString {.compilerRtl.} =
   result = toNimstr(str, c_strlen(str))
 
 proc copyString(src: NimString): NimString {.compilerRtl.} =
-  if (src.reserved and seqShallowFlag) != 0:
-    result = src
-  elif src != nil:
-    result = rawNewString(src.space)
-    result.len = src.len
-    c_memcpy(result.data, src.data, (src.len + 1) * sizeof(Char))
+  if src != nil:
+    if (src.reserved and seqShallowFlag) != 0:
+      result = src
+    else:
+      result = rawNewString(src.space)
+      result.len = src.len
+      c_memcpy(result.data, src.data, (src.len + 1) * sizeof(Char))
 
 proc copyStringRC1(src: NimString): NimString {.compilerRtl.} =
   if src != nil: