parent
22b2684608
commit
1e1fd73530
2 changed files with 19 additions and 1 deletions
|
|
@ -99,7 +99,7 @@ proc genTraverseProc(c: TTraversalClosure, accessor: Rope, typ: PType) =
|
||||||
of tyRef:
|
of tyRef:
|
||||||
lineCg(p, cpsStmts, visitorFrmt, [accessor, c.visitorFrmt])
|
lineCg(p, cpsStmts, visitorFrmt, [accessor, c.visitorFrmt])
|
||||||
of tySequence:
|
of tySequence:
|
||||||
if tfHasAsgn notin typ.flags:
|
if optSeqDestructors notin c.p.module.config.globalOptions:
|
||||||
lineCg(p, cpsStmts, visitorFrmt, [accessor, c.visitorFrmt])
|
lineCg(p, cpsStmts, visitorFrmt, [accessor, c.visitorFrmt])
|
||||||
elif containsGarbageCollectedRef(typ.lastSon):
|
elif containsGarbageCollectedRef(typ.lastSon):
|
||||||
# destructor based seqs are themselves not traced but their data is, if
|
# destructor based seqs are themselves not traced but their data is, if
|
||||||
|
|
|
||||||
|
|
@ -147,3 +147,21 @@ proc newMySeq*[T](size: int, initial_value: T): MySeq[T] =
|
||||||
|
|
||||||
let x = makeShared(newMySeq(10, 1.0))
|
let x = makeShared(newMySeq(10, 1.0))
|
||||||
doAssert: x.get().len == 10
|
doAssert: x.get().len == 10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------
|
||||||
|
#bug #12882
|
||||||
|
|
||||||
|
type
|
||||||
|
ValueObject = object
|
||||||
|
v: MySeq[int]
|
||||||
|
name: string
|
||||||
|
|
||||||
|
TopObject = object
|
||||||
|
internal: seq[ValueObject]
|
||||||
|
|
||||||
|
var zz = new(TopObject)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue