Vladar

Nimrod's destructor pragma

Dec 15th, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.43 KB | None | 0 0
  1. import strutils
  2.  
  3. type
  4. PFoo = pointer
  5.  
  6. proc free(t: var PFoo) {.destructor.} =
  7. if t == nil: return
  8. echo "free"
  9. dealloc(t)
  10. t = nil
  11.  
  12. proc newFoo(size: int): PFoo =
  13. echo "new"
  14. return alloc(size)
  15.  
  16. template memEcho() =
  17. echo format("O: $1; F: $2; T: $3", getOccupiedMem(), getFreeMem(), getTotalMem())
  18.  
  19. proc test() =
  20. var foo = newFoo(1000000)
  21. free(foo)
  22.  
  23. memEcho()
  24. while true:
  25. test()
  26. memEcho()
Advertisement
Add Comment
Please, Sign In to add comment