From 75c586bbe1cc649b36fc00362ab40ebb1d163d9f Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 27 May 2013 23:20:20 +0200 Subject: [PATCH] Revert "bugfix: emulated thread vars used in combination with the mark & sweep GC" This reverts commit 420789c2782be7b969ad02448841d90bd0d17a1f. --- compiler/ccgthreadvars.nim | 4 ++-- compiler/ccgtrav.nim | 8 ++------ compiler/cgen.nim | 3 --- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/compiler/ccgthreadvars.nim b/compiler/ccgthreadvars.nim index d312ea0278..4785402e75 100644 --- a/compiler/ccgthreadvars.nim +++ b/compiler/ccgthreadvars.nim @@ -12,10 +12,10 @@ # included from cgen.nim -proc emulatedThreadVars(): bool = +proc emulatedThreadVars(): bool {.inline.} = result = {optThreads, optTlsEmulation} <= gGlobalOptions -proc accessThreadLocalVar(p: BProc, s: PSym) = +proc AccessThreadLocalVar(p: BProc, s: PSym) = if emulatedThreadVars() and not p.ThreadVarAccessed: p.ThreadVarAccessed = true p.module.usesThreadVars = true diff --git a/compiler/ccgtrav.nim b/compiler/ccgtrav.nim index 9534eae91d..aa8b856006 100644 --- a/compiler/ccgtrav.nim +++ b/compiler/ccgtrav.nim @@ -127,22 +127,18 @@ proc genTraverseProc(m: BModule, typ: PType, reason: TTypeInfoReason): PRope = m.s[cfsProcHeaders].appf("$1;$n", header) m.s[cfsProcs].app(generatedProc) + proc genTraverseProcForGlobal(m: BModule, s: PSym): PRope = discard genTypeInfo(m, s.loc.t) var c: TTraversalClosure var p = newProc(nil, m) - var sLoc = s.loc.r result = getGlobalTempName() - if sfThread in s.flags and emulatedThreadVars(): - accessThreadLocalVar(p, s) - sLoc = con("NimTV->", sLoc) - c.visitorFrmt = "#nimGCvisit((void*)$1, 0);$n" c.p = p let header = ropef("N_NIMCALL(void, $1)()", result) - genTraverseProc(c, sLoc, s.loc.t) + genTraverseProc(c, s.loc.r, s.loc.t) let generatedProc = ropef("$1 {$n$2$3$4}$n", [header, p.s(cpsLocals), p.s(cpsInit), p.s(cpsStmts)]) diff --git a/compiler/cgen.nim b/compiler/cgen.nim index f552b95ea7..92216d2783 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -284,9 +284,6 @@ proc genLineDir(p: BProc, t: PNode) = linefmt(p, cpsStmts, "nimln($1, $2);$n", line.toRope, t.info.quotedFilename) -proc accessThreadLocalVar(p: BProc, s: PSym) -proc emulatedThreadVars(): bool {.inline.} - include "ccgtypes.nim" # ------------------------------ Manager of temporaries ------------------