diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2023-06-02 22:02:37 -0500 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2023-06-03 12:19:30 -0500 |
| commit | 47c40d51dffe646465bb5bb8454c6143005859da (patch) | |
| tree | 0a50f61b023aeb20a98a58414b2d6e35f0927811 /Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp | |
| parent | d03e09c8fd911d1b4e66184ceedbeca989b75a0c (diff) | |
VideoCommon: when loading a PNG with no custom texture data levels already, create a level, this avoids a potential segfault
Diffstat (limited to 'Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp b/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp index 912def9e6b..f65ea9ccc9 100644 --- a/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp +++ b/Source/Core/VideoCommon/Assets/DirectFilesystemAssetLibrary.cpp @@ -72,8 +72,11 @@ CustomAssetLibrary::LoadInfo DirectFilesystemAssetLibrary::LoadTexture(const Ass } else if (ext == ".png") { - LoadPNGTexture(data, asset_path.string()); - if (data->m_levels.empty()) [[unlikely]] + // If we have no levels, create one to pass into LoadPNGTexture + if (data->m_levels.empty()) + data->m_levels.push_back({}); + + if (!LoadPNGTexture(&data->m_levels[0], asset_path.string())) return {}; if (!LoadMips(asset_path, data)) return {}; |
