Remove use of variable length arrays (#48232)
The variable length array extension will be disabled by default in the next roll of Clang.
diff --git a/display_list/benchmarking/dl_complexity_helper.h b/display_list/benchmarking/dl_complexity_helper.h
index 49fe510..2f7133e 100644
--- a/display_list/benchmarking/dl_complexity_helper.h
+++ b/display_list/benchmarking/dl_complexity_helper.h
@@ -221,8 +221,8 @@
unsigned int conic_verb_cost,
unsigned int cubic_verb_cost) {
int verb_count = path.countVerbs();
- uint8_t verbs[verb_count];
- path.getVerbs(verbs, verb_count);
+ std::vector<uint8_t> verbs(verb_count);
+ path.getVerbs(verbs.data(), verbs.size());
unsigned int complexity = 0;
for (int i = 0; i < verb_count; i++) {
diff --git a/flow/layers/display_list_layer_unittests.cc b/flow/layers/display_list_layer_unittests.cc
index 2791577..9a85aa3 100644
--- a/flow/layers/display_list_layer_unittests.cc
+++ b/flow/layers/display_list_layer_unittests.cc
@@ -578,7 +578,7 @@
int layer_count = per_frame + 1;
SkPoint opacity_offset = {10, 10};
auto opacity_layer = std::make_shared<OpacityLayer>(0.5f, opacity_offset);
- std::shared_ptr<DisplayListLayer> layers[layer_count];
+ std::vector<std::shared_ptr<DisplayListLayer>> layers;
for (int i = 0; i < layer_count; i++) {
DisplayListBuilder builder(false);
builder.DrawRect({0, 0, 100, 100}, DlPaint());
@@ -587,9 +587,9 @@
ASSERT_FALSE(display_list->can_apply_group_opacity());
SkPoint offset = {i * 200.0f, 0};
- layers[i] =
- std::make_shared<DisplayListLayer>(offset, display_list, true, false);
- opacity_layer->Add(layers[i]);
+ layers.push_back(
+ std::make_shared<DisplayListLayer>(offset, display_list, true, false));
+ opacity_layer->Add(layers.back());
}
for (size_t j = 0; j < context->raster_cache->access_threshold(); j++) {
context->raster_cache->BeginFrame();
diff --git a/lib/ui/hooks_unittests.cc b/lib/ui/hooks_unittests.cc
index 8fc69f4..9158e44 100644
--- a/lib/ui/hooks_unittests.cc
+++ b/lib/ui/hooks_unittests.cc
@@ -54,14 +54,14 @@
int64_t arg_count;
Dart_IntegerToInt64(arg_count_handle, &arg_count);
- Dart_Handle hook_args[arg_count];
+ std::vector<Dart_Handle> hook_args;
for (int i = 0; i < static_cast<int>(arg_count); i++) {
- hook_args[i] = Dart_GetNativeArgument(args, 2 + i);
- CHECK_DART_ERROR(hook_args[i]);
+ hook_args.push_back(Dart_GetNativeArgument(args, 2 + i));
+ CHECK_DART_ERROR(hook_args.back());
}
Dart_Handle hook_result =
- Dart_InvokeClosure(hook, static_cast<int>(arg_count), hook_args);
+ Dart_InvokeClosure(hook, hook_args.size(), hook_args.data());
CHECK_DART_ERROR(hook_result);
};
diff --git a/vulkan/vulkan_application.cc b/vulkan/vulkan_application.cc
index ea81295..6b618b1 100644
--- a/vulkan/vulkan_application.cc
+++ b/vulkan/vulkan_application.cc
@@ -50,10 +50,10 @@
}
#endif
- const char* extensions[enabled_extensions.size()];
+ std::vector<const char*> extensions;
for (size_t i = 0; i < enabled_extensions.size(); i++) {
- extensions[i] = enabled_extensions[i].c_str();
+ extensions.push_back(enabled_extensions[i].c_str());
}
// Configure layers.
@@ -61,10 +61,10 @@
const std::vector<std::string> enabled_layers =
InstanceLayersToEnable(vk_, enable_validation_layers_);
- const char* layers[enabled_layers.size()];
+ std::vector<const char*> layers;
for (size_t i = 0; i < enabled_layers.size(); i++) {
- layers[i] = enabled_layers[i].c_str();
+ layers.push_back(enabled_layers[i].c_str());
}
// Configure init structs.
@@ -84,10 +84,10 @@
.pNext = nullptr,
.flags = 0,
.pApplicationInfo = &info,
- .enabledLayerCount = static_cast<uint32_t>(enabled_layers.size()),
- .ppEnabledLayerNames = layers,
- .enabledExtensionCount = static_cast<uint32_t>(enabled_extensions.size()),
- .ppEnabledExtensionNames = extensions,
+ .enabledLayerCount = static_cast<uint32_t>(layers.size()),
+ .ppEnabledLayerNames = layers.data(),
+ .enabledExtensionCount = static_cast<uint32_t>(extensions.size()),
+ .ppEnabledExtensionNames = extensions.data(),
};
// Perform initialization.
diff --git a/vulkan/vulkan_backbuffer.cc b/vulkan/vulkan_backbuffer.cc
index 4225fb5..dc404d4 100644
--- a/vulkan/vulkan_backbuffer.cc
+++ b/vulkan/vulkan_backbuffer.cc
@@ -97,7 +97,7 @@
}
bool VulkanBackbuffer::WaitFences() {
- VkFence fences[use_fences_.size()];
+ VkFence fences[std::tuple_size_v<decltype(use_fences_)>];
for (size_t i = 0; i < use_fences_.size(); i++) {
fences[i] = use_fences_[i];
@@ -109,7 +109,7 @@
}
bool VulkanBackbuffer::ResetFences() {
- VkFence fences[use_fences_.size()];
+ VkFence fences[std::tuple_size_v<decltype(use_fences_)>];
for (size_t i = 0; i < use_fences_.size(); i++) {
fences[i] = use_fences_[i];
diff --git a/vulkan/vulkan_device.cc b/vulkan/vulkan_device.cc
index 5e2a3f3..e5b0fea 100644
--- a/vulkan/vulkan_device.cc
+++ b/vulkan/vulkan_device.cc
@@ -75,10 +75,10 @@
auto enabled_layers =
DeviceLayersToEnable(vk_, physical_device_, enable_validation_layers);
- const char* layers[enabled_layers.size()];
+ std::vector<const char*> layers;
for (size_t i = 0; i < enabled_layers.size(); i++) {
- layers[i] = enabled_layers[i].c_str();
+ layers.push_back(enabled_layers[i].c_str());
}
const VkDeviceCreateInfo create_info = {
@@ -87,8 +87,8 @@
.flags = 0,
.queueCreateInfoCount = 1,
.pQueueCreateInfos = &queue_create,
- .enabledLayerCount = static_cast<uint32_t>(enabled_layers.size()),
- .ppEnabledLayerNames = layers,
+ .enabledLayerCount = static_cast<uint32_t>(layers.size()),
+ .ppEnabledLayerNames = layers.data(),
.enabledExtensionCount = sizeof(extensions) / sizeof(const char*),
.ppEnabledExtensionNames = extensions,
.pEnabledFeatures = nullptr,