)]}'
{
  "commit": "c6f8c86085bd3b9e06f6eabcc4af9c1f3f332c86",
  "tree": "bc022f52b72cfd69244352533b535282e57eb64f",
  "parents": [
    "f575c5070b2acc5d6aba2ca33f65e86d314ca852"
  ],
  "author": {
    "name": "Joe Hermaszewski",
    "email": "git@monoid.al",
    "time": "Mon Apr 06 17:17:38 2020 +0800"
  },
  "committer": {
    "name": "Joe Hermaszewski",
    "email": "git@monoid.al",
    "time": "Tue Apr 07 20:20:47 2020 +0800"
  },
  "message": "Add annotations for nullability and length\n\nThese are only present on the declarations in the C API.\n\nNew macros\n- `VMA_NULLABLE`\n- `VMA_NOT_NULL`\n- `VMA_NULLABLE_NON_DISPATCHABLE`\n- `VMA_NOT_NULL_NON_DISPATCHABLE`\n- `VMA_LEN_IF_NOT_NULL`\n\nOn clang `VMA_NOT_NULL` and `VMA_NULLABLE` are defined as `_Nonnull` and\n`_Nullable`. Clang will use these annotations to generate diagnostics\nwhen these functions or structs are incorrectly used.\n\n`VMA_NULLABLE_NON_DISPATCHABLE` and `VMA_NOT_NULL_NON_DISPATCHABLE` are\nnot defined on platforms where Vulkan\u0027s non-dispatchable handles are not\npointers; on platforms where they are, these macros are defined to be\n`VMA_NULLABLE` and `VMA_NOT_NULL` respectively.\n\n`LEN_IF_NOT_NULL` is not defined for any compiler. It is included to\nmirror the `len` attribute in the Vulkan XML spec in order to aid in\ndevelopment of other language bindings for this library.\n\nIt was tempting to use C\u0027s array syntax (`foo(int len, int arr[len])`)to\nspecify lengths, however this is not possible to use with optional\npointers, nor is it possible to use inside structs. For the sake of\nconsistency only `VMA_LEN_IF_NOT_NULL` is used (additionally neither\nclang not gcc generate warnings for function misuse when the array\nlength specifier is anything but an integer literal).\n\n- Also correct a couple of typos\n- Also add assert on ppName in vmaGetPoolName\n\nCloses #114\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7e70a9ed66e41160bd39cd3a0fca25c8662c357a",
      "old_mode": 33188,
      "old_path": "src/vk_mem_alloc.h",
      "new_id": "bc782e15f8e6f9edc35aca171fc0f451f0c2bbba",
      "new_mode": 33188,
      "new_path": "src/vk_mem_alloc.h"
    }
  ]
}
