Module: wine Branch: master Commit: 68325b385847fd4619fb90b7a64b8b66b894f134 URL: https://gitlab.winehq.org/wine/wine/-/commit/68325b385847fd4619fb90b7a64b8b6...
Author: Rémi Bernon rbernon@codeweavers.com Date: Wed Jan 3 19:37:00 2024 +0100
dmloader: Avoid caching DMUS_OBJ_STREAM objects we can't load from cache.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56117
---
dlls/dmloader/loader.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/dlls/dmloader/loader.c b/dlls/dmloader/loader.c index 78b9790dff3..2ebbbe7ffca 100644 --- a/dlls/dmloader/loader.c +++ b/dlls/dmloader/loader.c @@ -271,6 +271,7 @@ static struct cache_entry *find_cache_object(struct loader *This, DMUS_OBJECTDES
static HRESULT WINAPI loader_GetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDESC *pDesc, REFIID riid, void **ppv) { + static const DWORD source_flags = DMUS_OBJ_STREAM | DMUS_OBJ_FILENAME | DMUS_OBJ_URL | DMUS_OBJ_STREAM; struct loader *This = impl_from_IDirectMusicLoader8(iface); HRESULT result = S_OK; HRESULT ret = S_OK; /* used at the end of function, to determine whether everything went OK */ @@ -426,6 +427,11 @@ static HRESULT WINAPI loader_GetObject(IDirectMusicLoader8 *iface, DMUS_OBJECTDE /* add object to cache/overwrite existing info (if cache is enabled) */ bCache = is_cache_enabled(This, &pDesc->guidClass); if (!bCache) TRACE(": caching disabled\n"); + else if ((pDesc->dwValidData & source_flags) == DMUS_OBJ_STREAM) + { + FIXME("Skipping cache for DMUS_OBJ_STREAM object\n"); + bCache = FALSE; + } else { if (!pObjectEntry)