vulkan/alloc: Add a vk_strdup helper
[mesa.git] / src / vulkan / util / vk_alloc.h
index f58a80625a8f4c84fe8d18ac4008989c40f02a96..2e807a96d9e6c7c43c96bd72db5c562083343d3a 100644 (file)
@@ -67,6 +67,23 @@ vk_free(const VkAllocationCallbacks *alloc, void *data)
    alloc->pfnFree(alloc->pUserData, data);
 }
 
+static inline char *
+vk_strdup(const VkAllocationCallbacks *alloc, const char *s,
+          VkSystemAllocationScope scope)
+{
+   if (s == NULL)
+      return NULL;
+
+   size_t size = strlen(s) + 1;
+   char *copy = vk_alloc(alloc, size, 1, scope);
+   if (copy == NULL)
+      return NULL;
+
+   memcpy(copy, s, size);
+
+   return copy;
+}
+
 static inline void *
 vk_alloc2(const VkAllocationCallbacks *parent_alloc,
           const VkAllocationCallbacks *alloc,