diff options
author | Subv <subv2112@gmail.com> | 2018-02-17 13:56:21 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-02-17 14:01:01 -0500 |
commit | 416f692f6e1b8a4c838977b0cf6d9ae2ecbd15d6 (patch) | |
tree | f852ec3328473f214155234c3ad03e40b80768e2 /src | |
parent | d7583324259c0c99d9f4a545751dc109229c6f05 (diff) |
nvmap: Make IocFromId return the same existing handle instead of creating a new one.
Games like Puyo Puyo Tetris and BOTW seem to depend on the buffer always having the same handle
Diffstat (limited to 'src')
-rw-r--r-- | src/core/hle/service/nvdrv/devices/nvmap.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvmap.cpp b/src/core/hle/service/nvdrv/devices/nvmap.cpp index cd8c0c605..b3842eb4c 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.cpp +++ b/src/core/hle/service/nvdrv/devices/nvmap.cpp @@ -103,11 +103,8 @@ u32 nvmap::IocFromId(const std::vector<u8>& input, std::vector<u8>& output) { [&](const auto& entry) { return entry.second->id == params.id; }); ASSERT(itr != handles.end()); - // Make a new handle for the object - u32 handle = next_handle++; - handles[handle] = itr->second; - - params.handle = handle; + // Return the existing handle instead of creating a new one. + params.handle = itr->first; std::memcpy(output.data(), ¶ms, sizeof(params)); return 0; |