From eec27d51d2d8dae2ac54a11229b55cd1da4e84cf Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Wed, 11 Jan 2017 15:32:07 -0500 Subject: [PATCH] Use FatVector instead of SkAutoMalloc in VulkanManager. Skia is looking to make SkAutoMalloc private and will be moving it. Using FatVector instead will make this code both less dependent on Skia internals and more performant. Test: refactoring CL. Existing unit tests still pass. Change-Id: If9de10059775b75e1ab89078eacede2e20e91299 --- libs/hwui/renderthread/VulkanManager.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp index 2b9074499c2a7..454ce4d9e8ff0 100644 --- a/libs/hwui/renderthread/VulkanManager.cpp +++ b/libs/hwui/renderthread/VulkanManager.cpp @@ -20,6 +20,7 @@ #include "Properties.h" #include "RenderThread.h" #include "renderstate/RenderState.h" +#include "utils/FatVector.h" #include #include @@ -381,10 +382,9 @@ bool VulkanManager::createSwapchain(VulkanSurface* surface) { return false; } - SkAutoMalloc surfaceFormatAlloc(surfaceFormatCount * sizeof(VkSurfaceFormatKHR)); - VkSurfaceFormatKHR* surfaceFormats = (VkSurfaceFormatKHR*)surfaceFormatAlloc.get(); + FatVector surfaceFormats(surfaceFormatCount); res = mGetPhysicalDeviceSurfaceFormatsKHR(mBackendContext->fPhysicalDevice, surface->mVkSurface, - &surfaceFormatCount, surfaceFormats); + &surfaceFormatCount, surfaceFormats.data()); if (VK_SUCCESS != res) { return false; } @@ -396,10 +396,9 @@ bool VulkanManager::createSwapchain(VulkanSurface* surface) { return false; } - SkAutoMalloc presentModeAlloc(presentModeCount * sizeof(VkPresentModeKHR)); - VkPresentModeKHR* presentModes = (VkPresentModeKHR*)presentModeAlloc.get(); + FatVector presentModes(presentModeCount); res = mGetPhysicalDeviceSurfacePresentModesKHR(mBackendContext->fPhysicalDevice, - surface->mVkSurface, &presentModeCount, presentModes); + surface->mVkSurface, &presentModeCount, presentModes.data()); if (VK_SUCCESS != res) { return false; }