Browse Source

Merge pull request #2327 from ReinUsesLisp/crash-safe-visit

gl_shader_decompiler: Return early when an operation is invalid
pull/15/merge
bunnei 7 years ago
committed by GitHub
parent
commit
520e4e5d4b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

7
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@ -426,9 +426,14 @@ private:
std::string Visit(Node node) {
if (const auto operation = std::get_if<OperationNode>(node)) {
const auto operation_index = static_cast<std::size_t>(operation->GetCode());
if (operation_index >= operation_decompilers.size()) {
UNREACHABLE_MSG("Out of bounds operation: {}", operation_index);
return {};
}
const auto decompiler = operation_decompilers[operation_index];
if (decompiler == nullptr) {
UNREACHABLE_MSG("Operation decompiler {} not defined", operation_index);
UNREACHABLE_MSG("Undefined operation: {}", operation_index);
return {};
}
return (this->*decompiler)(*operation);

Loading…
Cancel
Save