vulkan/alloc: Add a vk_strdup helper
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 30 Jan 2018 02:11:38 +0000 (18:11 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 28 Aug 2018 18:05:54 +0000 (13:05 -0500)
Cc: "18.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
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,