Browse Source

Merge pull request #1474 from Kelimion/tracking-example

mem: Add `doc.odin` with `Tracking_Allocator` example.
gingerBill 3 years ago
parent
commit
9dcb5c075a
1 changed files with 34 additions and 0 deletions
  1. 34 0
      core/mem/doc.odin

+ 34 - 0
core/mem/doc.odin

@@ -0,0 +1,34 @@
+/*
+package mem implements various types of allocators.
+
+
+An example of how to use the `Tracking_Allocator` to track subsequent allocations
+in your program and report leaks and bad frees:
+
+```odin
+package foo
+
+import "core:mem"
+import "core:fmt"
+
+_main :: proc() {
+   do stuff
+}
+
+main :: proc() {
+    track: mem.Tracking_Allocator
+    mem.tracking_allocator_init(&track, context.allocator)
+    context.allocator = mem.tracking_allocator(&track)
+
+    _main()
+
+    for _, v in track.allocation_map {
+        fmt.printf("%v leaked %v bytes", v.location, v.size)
+    }
+    for bf in track.bad_free_array {
+        fmt.printf("%v allocation %p was freed badly", bf.location, bf.memory)
+    }
+}
+```
+*/
+package mem