[Memory] TranslateVirtual in shim and strings

This commit is contained in:
Triang3l
2019-08-14 10:31:11 +03:00
parent 0067f5561d
commit 2507f1a819
7 changed files with 67 additions and 73 deletions

View File

@@ -14,6 +14,7 @@
#include "xenia/base/byte_stream.h"
#include "xenia/base/clock.h"
#include "xenia/kernel/kernel_state.h"
#include "xenia/kernel/util/shim_utils.h"
#include "xenia/kernel/xboxkrnl/xboxkrnl_private.h"
#include "xenia/kernel/xenumerator.h"
#include "xenia/kernel/xevent.h"
@@ -166,8 +167,9 @@ void XObject::SetAttributes(uint32_t obj_attributes_ptr) {
return;
}
auto name = X_ANSI_STRING::to_string_indirect(memory()->virtual_membase(),
obj_attributes_ptr + 4);
auto name = util::TranslateAnsiStringAddress(
memory(), xe::load_and_swap<uint32_t>(
memory()->TranslateVirtual(obj_attributes_ptr + 4)));
if (!name.empty()) {
name_ = std::move(name);
kernel_state_->object_table()->AddNameMapping(name_, handles_[0]);