diff --git a/compiler/ccgreset.nim b/compiler/ccgreset.nim index 6de4874baa..6caeb80849 100644 --- a/compiler/ccgreset.nim +++ b/compiler/ccgreset.nim @@ -66,14 +66,7 @@ proc specializeResetT(p: BProc, accessor: Rope, typ: PType) = var x = typ.baseClass if x != nil: x = x.skipTypes(skipPtrs) specializeResetT(p, accessor.parentObj(p.module), x) - if typ.n != nil: - if typ.sym != nil and sfImportc in typ.sym.flags: - # imported C struct, nimZeroMem - p.s(cpsStmts).addCallStmt(cgsymValue(p.module, "nimZeroMem"), - cCast(ptrType(CPointer), cAddr(accessor)), - cSizeof(getTypeDesc(p.module, typ))) - else: - specializeResetN(p, accessor, typ.n, typ) + if typ.n != nil: specializeResetN(p, accessor, typ.n, typ) of tyTuple: let typ = getUniqueType(typ) for i, a in typ.ikids: diff --git a/tests/stdlib/tlocks.nim b/tests/stdlib/tlocks.nim index 95ec62993b..1c5f671193 100644 --- a/tests/stdlib/tlocks.nim +++ b/tests/stdlib/tlocks.nim @@ -9,30 +9,3 @@ import std/assertions var m = createMyType[int]() doAssert m.use() == 3 - - -import std/locks - -type - S = object - r: proc() - - B = object - d: Lock - w: S - -proc v(x: ptr B) {.exportc.} = reset(x[]) - -type - Test = object - path: string # Removing this makes both cases work. - lock: Lock - -# A: This is not fine. -var a = Test() - -proc main(): void = - # B: This is fine. - var b = Test() - -main()