From 4dfe1addaa030a865ec8b74ece4cbe2d61daf8aa Mon Sep 17 00:00:00 2001 From: "Dr. Chat" Date: Thu, 12 Nov 2015 19:02:32 -0600 Subject: [PATCH] Verify that LookupObject actually returns an object of the requested type. --- src/xenia/kernel/util/object_table.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/xenia/kernel/util/object_table.h b/src/xenia/kernel/util/object_table.h index f992b8b5f..f1f7e7d0d 100644 --- a/src/xenia/kernel/util/object_table.h +++ b/src/xenia/kernel/util/object_table.h @@ -38,10 +38,22 @@ class ObjectTable { template object_ref LookupObject(X_HANDLE handle) { auto object = LookupObject(handle, false); + if (object) { + assert_true(object->type() == T::kType); + } + auto result = object_ref(reinterpret_cast(object)); return result; } + // Generic lookup + template <> + object_ref LookupObject(X_HANDLE handle) { + auto object = LookupObject(handle, false); + auto result = object_ref(reinterpret_cast(object)); + return result; + } + X_STATUS AddNameMapping(const std::string& name, X_HANDLE handle); void RemoveNameMapping(const std::string& name); X_STATUS GetObjectByName(const std::string& name, X_HANDLE* out_handle);