summary refs log tree commit diff stats
path: root/compiler/ccgexprs.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-01-31 16:34:39 +0100
committerAraq <rumpf_a@web.de>2013-01-31 16:34:39 +0100
commit2a2b6307578e481b125d5315893044f4dea81039 (patch)
tree08d053d851b185761c542bebc87a874919fb8306 /compiler/ccgexprs.nim
parentd9d98512e043c1bed44da7f81025046def325a26 (diff)
downloadNim-2a2b6307578e481b125d5315893044f4dea81039.tar.gz
cleaner GC switching
Diffstat (limited to 'compiler/ccgexprs.nim')
-rwxr-xr-xcompiler/ccgexprs.nim10
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim
index 20636f122..c6efaa7a0 100755
--- a/compiler/ccgexprs.nim
+++ b/compiler/ccgexprs.nim
@@ -164,7 +164,7 @@ proc getStorageLoc(n: PNode): TStorageLoc =
   else: result = OnUnknown
 
 proc genRefAssign(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
-  if dest.s == OnStack or optRefcGC notin gGlobalOptions:
+  if dest.s == OnStack or not usesNativeGC():
     linefmt(p, cpsStmts, "$1 = $2;$n", rdLoc(dest), rdLoc(src))
     if needToKeepAlive in flags: keepAlive(p, dest)
   elif dest.s == OnHeap:
@@ -204,7 +204,7 @@ proc genGenericAsgn(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
   # (for objects, etc.):
   if needToCopy notin flags or 
       tfShallow in skipTypes(dest.t, abstractVarRange).flags:
-    if dest.s == OnStack or optRefcGC notin gGlobalOptions:
+    if dest.s == OnStack or not usesNativeGC():
       linefmt(p, cpsStmts,
            "memcpy((void*)$1, (NIM_CONST void*)$2, sizeof($3));$n",
            addrLoc(dest), addrLoc(src), rdLoc(dest))
@@ -237,7 +237,7 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
     if needToCopy notin flags:
       genRefAssign(p, dest, src, flags)
     else:
-      if dest.s == OnStack or optRefcGC notin gGlobalOptions:
+      if dest.s == OnStack or not usesNativeGC():
         linefmt(p, cpsStmts, "$1 = #copyString($2);$n", dest.rdLoc, src.rdLoc)
         if needToKeepAlive in flags: keepAlive(p, dest)
       elif dest.s == OnHeap:
@@ -954,7 +954,7 @@ proc genNew(p: BProc, e: PNode) =
   let args = [getTypeDesc(p.module, reftype),
               genTypeInfo(p.module, refType),
               sizeExpr]
-  if a.s == OnHeap and optRefcGc in gGlobalOptions:
+  if a.s == OnHeap and usesNativeGC():
     # use newObjRC1 as an optimization; and we don't need 'keepAlive' either
     if canFormAcycle(a.t):
       linefmt(p, cpsStmts, "if ($1) #nimGCunref($1);$n", a.rdLoc)
@@ -974,7 +974,7 @@ proc genNewSeqAux(p: BProc, dest: TLoc, length: PRope) =
               genTypeInfo(p.module, seqType), length]
   var call: TLoc
   initLoc(call, locExpr, dest.t, OnHeap)
-  if dest.s == OnHeap and optRefcGc in gGlobalOptions:
+  if dest.s == OnHeap and usesNativeGC():
     linefmt(p, cpsStmts, "if ($1) #nimGCunrefNoCycle($1);$n", dest.rdLoc)
     call.r = ropecg(p.module, "($1) #newSeqRC1($2, $3)", args)
     linefmt(p, cpsStmts, "$1 = $2;$n", dest.rdLoc, call.rdLoc)