Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 7f12e34

Browse files
authored
Fix clang tidy error and crash (#42564)
Clang tidy checks for #42399 are failing for `formats_mtl.mm` and `context_mtl.mm`. Weirdly this happens even though none of these files where modified in the branch. For `context_mtl.mm` the fix is straightforward, just a missing `std::move`. For `formats_mtl.mm` clang-tidy actually crashes on the assignments to `des.depthCompareFunction` and `des.depth_write_enabled`. The crash doesn't happen if the assignment is done through a temporary variable. I'm not sure if we should have a workaround for the crash or disable clang-tidy on the file completely (FLUTTER_NOLINT). ## Pre-launch Checklist - [X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [X] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [X] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [X] I listed at least one issue that this PR fixes in the description above. - [X] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt. See [testing the engine] for instructions on writing and running engine tests. - [X] I updated/added relevant documentation (doc comments with `///`). - [X] I signed the [CLA]. - [X] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
1 parent adca97c commit 7f12e34

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

impeller/renderer/backend/metal/context_mtl.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ static bool DeviceSupportsComputeSubgroups(id<MTLDevice> device) {
228228
auto context = std::shared_ptr<ContextMTL>(new ContextMTL(
229229
device,
230230
MTLShaderLibraryFromFileData(device, shader_libraries_data, label),
231-
worker_task_runner, std::move(is_gpu_disabled_sync_switch)));
231+
std::move(worker_task_runner), std::move(is_gpu_disabled_sync_switch)));
232232
if (!context->IsValid()) {
233233
FML_LOG(ERROR) << "Could not create Metal context.";
234234
return nullptr;

impeller/renderer/backend/metal/formats_mtl.mm

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,13 @@
6464

6565
auto des = [[MTLDepthStencilDescriptor alloc] init];
6666

67-
des.depthCompareFunction = ToMTLCompareFunction(depth->depth_compare);
68-
des.depthWriteEnabled = depth->depth_write_enabled;
67+
// These temporary variables are necessary for clang-tidy (Fuchsia LLVM
68+
// version 17.0.0git) to not crash.
69+
auto compare_function = ToMTLCompareFunction(depth->depth_compare);
70+
auto depth_write_enabled = depth->depth_write_enabled;
71+
72+
des.depthCompareFunction = compare_function;
73+
des.depthWriteEnabled = depth_write_enabled;
6974

7075
if (front.has_value()) {
7176
des.frontFaceStencil = ToMTLStencilDescriptor(front.value());

0 commit comments

Comments
 (0)