mirror of
https://github.com/izzy2lost/xenia-edge.git
synced 2026-07-06 00:20:26 -07:00
Merge remote-tracking branch 'upstream/canary_experimental' into edge
This commit is contained in:
@@ -276,7 +276,7 @@ void ObjectTable::PurgeAllObjects() {
|
||||
auto& entry = table_[slot];
|
||||
if (entry.object) {
|
||||
entry.handle_ref_count = 0;
|
||||
entry.object->Release();
|
||||
entry.object->ReleaseHandle();
|
||||
|
||||
entry.object = nullptr;
|
||||
}
|
||||
|
||||
@@ -48,8 +48,9 @@ struct XMP_SONGINFO {
|
||||
xe::be<uint32_t> track_number;
|
||||
xe::be<uint32_t> duration;
|
||||
xe::be<uint32_t> song_format;
|
||||
xe::be<uint32_t> unknown_1;
|
||||
};
|
||||
static_assert_size(XMP_SONGINFO, 988);
|
||||
static_assert_size(XMP_SONGINFO, 0x3E0);
|
||||
|
||||
struct XMP_PLAY_TITLE_PLAYLIST {
|
||||
xe::be<uint32_t> xmp_client;
|
||||
|
||||
@@ -240,7 +240,7 @@ X_STATUS VirtualFileSystem::OpenFile(Entry* root_entry,
|
||||
: root_entry->ResolvePath(base_path);
|
||||
if (!parent_entry) {
|
||||
*out_action = FileAction::kDoesNotExist;
|
||||
return X_STATUS_NO_SUCH_FILE;
|
||||
return X_STATUS_OBJECT_PATH_NOT_FOUND;
|
||||
}
|
||||
|
||||
auto file_name = xe::utf8::find_name_from_guest_path(path);
|
||||
@@ -254,13 +254,17 @@ X_STATUS VirtualFileSystem::OpenFile(Entry* root_entry,
|
||||
return X_STATUS_FILE_IS_A_DIRECTORY;
|
||||
}
|
||||
|
||||
if (!(entry->attributes() & kFileAttributeDirectory) && is_directory) {
|
||||
return X_STATUS_NOT_A_DIRECTORY;
|
||||
}
|
||||
|
||||
// If the entry does not exist on the host then remove the cached entry
|
||||
if (parent_entry) {
|
||||
const xe::vfs::HostPathEntry* host_Path =
|
||||
const xe::vfs::HostPathEntry* host_path =
|
||||
dynamic_cast<const xe::vfs::HostPathEntry*>(parent_entry);
|
||||
|
||||
if (host_Path) {
|
||||
auto const file_path = host_Path->host_path() / entry->name();
|
||||
if (host_path) {
|
||||
auto const file_path = host_path->host_path() / entry->name();
|
||||
|
||||
if (!std::filesystem::exists(file_path)) {
|
||||
// Remove cached entry
|
||||
@@ -278,7 +282,7 @@ X_STATUS VirtualFileSystem::OpenFile(Entry* root_entry,
|
||||
// Must exist.
|
||||
if (!entry) {
|
||||
*out_action = FileAction::kDoesNotExist;
|
||||
return X_STATUS_NO_SUCH_FILE;
|
||||
return X_STATUS_OBJECT_NAME_NOT_FOUND;
|
||||
}
|
||||
break;
|
||||
case FileDisposition::kCreate:
|
||||
|
||||
@@ -58,6 +58,7 @@ typedef uint32_t X_STATUS;
|
||||
#define X_STATUS_OBJECT_NAME_INVALID ((X_STATUS)0xC0000033L)
|
||||
#define X_STATUS_OBJECT_NAME_NOT_FOUND ((X_STATUS)0xC0000034L)
|
||||
#define X_STATUS_OBJECT_NAME_COLLISION ((X_STATUS)0xC0000035L)
|
||||
#define X_STATUS_OBJECT_PATH_NOT_FOUND ((X_STATUS)0xC000003AL)
|
||||
#define X_STATUS_INVALID_PAGE_PROTECTION ((X_STATUS)0xC0000045L)
|
||||
#define X_STATUS_MUTANT_NOT_OWNED ((X_STATUS)0xC0000046L)
|
||||
#define X_STATUS_SEMAPHORE_LIMIT_EXCEEDED ((X_STATUS)0xC0000047L)
|
||||
@@ -72,6 +73,7 @@ typedef uint32_t X_STATUS;
|
||||
#define X_STATUS_INVALID_PARAMETER_1 ((X_STATUS)0xC00000EFL)
|
||||
#define X_STATUS_INVALID_PARAMETER_2 ((X_STATUS)0xC00000F0L)
|
||||
#define X_STATUS_INVALID_PARAMETER_3 ((X_STATUS)0xC00000F1L)
|
||||
#define X_STATUS_NOT_A_DIRECTORY ((X_STATUS)0xC0000103L)
|
||||
#define X_STATUS_PROCESS_IS_TERMINATING ((X_STATUS)0xC000010AL)
|
||||
#define X_STATUS_DLL_NOT_FOUND ((X_STATUS)0xC0000135L)
|
||||
#define X_STATUS_ENTRYPOINT_NOT_FOUND ((X_STATUS)0xC0000139L)
|
||||
|
||||
Reference in New Issue
Block a user