DITConfiguration: Prevent a crash if images fail to load

Recently came across a strange issue where Dolphin would hard crash in most games with this error:

```sh
/usr/include/c++/15.2.1/optional:1165: constexpr const _Tp* std::optional<_Tp>::operator->() const [with _Tp = InputCommon::ImagePixelData]: Assertion 'this->_M_is_engaged()' failed.
```

The culprit turned out to be accessing `host_key_image` which is an `std::optional` thay may return `std::nullopt`. I'm not sure why this issue started occuring for me since I've had no issue with my Dynamic Input Textures in the past? But this fixes a crash if the image fails to load.
This commit is contained in:
Joshua Vandaële
2025-11-28 18:13:46 +01:00
parent e8c512dfb5
commit 5a6dc310c0
2 changed files with 14 additions and 3 deletions

View File

@@ -45,9 +45,12 @@ void CopyImageRegion(const ImagePixelData& src, ImagePixelData& dst, const Rect&
std::optional<ImagePixelData> LoadImage(const std::string& path)
{
File::IOFile file;
file.Open(path, "rb");
if (!file.Open(path, "rb"))
return std::nullopt;
Common::UniqueBuffer<u8> buffer(file.GetSize());
file.ReadBytes(buffer.data(), file.GetSize());
if (!file.ReadBytes(buffer.data(), file.GetSize()))
return std::nullopt;
ImagePixelData image;
Common::UniqueBuffer<u8> data;