doc.odin 740 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. package mem implements various types of allocators.
  3. An example of how to use the `Tracking_Allocator` to track subsequent allocations
  4. in your program and report leaks and bad frees:
  5. ```odin
  6. package foo
  7. import "core:mem"
  8. import "core:fmt"
  9. _main :: proc() {
  10. do stuff
  11. }
  12. main :: proc() {
  13. track: mem.Tracking_Allocator
  14. mem.tracking_allocator_init(&track, context.allocator)
  15. defer mem.tracking_allocator_destroy(&track)
  16. context.allocator = mem.tracking_allocator(&track)
  17. _main()
  18. for _, leak in track.allocation_map {
  19. fmt.printf("%v leaked %m\n", leak.location, leak.size)
  20. }
  21. for bad_free in track.bad_free_array {
  22. fmt.printf("%v allocation %p was freed badly\n", bad_free.location, bad_free.memory)
  23. }
  24. }
  25. ```
  26. */
  27. package mem