mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
40 lines
612 B
Nim
40 lines
612 B
Nim
discard """
|
|
outputsub: "no leak: "
|
|
"""
|
|
|
|
type
|
|
TNode = object
|
|
data: array[0..300, char]
|
|
|
|
PNode = ref TNode
|
|
|
|
TNodeArray = array[0..10, PNode]
|
|
|
|
TArrayHolder = object
|
|
sons: TNodeArray
|
|
|
|
proc nullify(a: var TNodeArray) =
|
|
for i in 0..high(a):
|
|
a[i] = nil
|
|
|
|
proc newArrayHolder: ref TArrayHolder =
|
|
new result
|
|
|
|
for i in 0..high(result.sons):
|
|
new result.sons[i]
|
|
|
|
nullify result.sons
|
|
|
|
proc loop =
|
|
for i in 0..10000:
|
|
discard newArrayHolder()
|
|
|
|
if getOccupiedMem() > 300_000:
|
|
echo "still a leak! ", getOccupiedMem()
|
|
quit 1
|
|
else:
|
|
echo "no leak: ", getOccupiedMem()
|
|
|
|
loop()
|
|
|