[PATCH] dmloader: Support DMUS_OBJ_MEMORY cache lookups
Michael Stefaniuc
mstefani at winehq.org
Thu Nov 28 15:11:11 CST 2019
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
On 11/28/19 11:08 AM, Alistair Leslie-Hughes wrote:
> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
> ---
> dlls/dmloader/loader.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/dmloader/loader.c b/dlls/dmloader/loader.c
> index 42209def94..9048c02dfc 100644
> --- a/dlls/dmloader/loader.c
> +++ b/dlls/dmloader/loader.c
> @@ -191,8 +191,18 @@ static struct cache_entry *find_cache_object(IDirectMusicLoaderImpl *This, DMUS_
> if (desc->dwValidData & DMUS_OBJ_STREAM)
> FIXME("Finding DMUS_OBJ_STREAM cached objects currently not supported.\n");
>
> - if (desc->dwValidData & DMUS_OBJ_MEMORY)
> - FIXME("Finding DMUS_OBJ_MEMORY cached objects currently not supported.\n");
> + if (desc->dwValidData & DMUS_OBJ_MEMORY) {
> + LIST_FOR_EACH_ENTRY(existing, &This->cache, struct cache_entry, entry) {
> + if (existing->Desc.dwValidData & DMUS_OBJ_MEMORY &&
> + desc->llMemLength == existing->Desc.llMemLength &&
> + (desc->pbMemData == existing->Desc.pbMemData ||
> + !memcmp(desc->pbMemData, existing->Desc.pbMemData, desc->llMemLength)) ) {
> + TRACE("Found by DMUS_OBJ_MEMORY (%d)\n",
> + desc->pbMemData == existing->Desc.pbMemData);
> + return existing;
> + }
> + }
> + }
>
> if ((desc->dwValidData & (DMUS_OBJ_FILENAME | DMUS_OBJ_FULLPATH)) ==
> (DMUS_OBJ_FILENAME | DMUS_OBJ_FULLPATH)) {
>
More information about the wine-devel
mailing list