general: Remove MakeResult helpers
This is made obsolete by the presence of implicit constructors.
This commit is contained in:
		@@ -39,13 +39,12 @@ void RomFSFactory::SetPackedUpdate(VirtualFile update_raw_file) {
 | 
			
		||||
 | 
			
		||||
ResultVal<VirtualFile> RomFSFactory::OpenCurrentProcess(u64 current_process_title_id) const {
 | 
			
		||||
    if (!updatable) {
 | 
			
		||||
        return MakeResult<VirtualFile>(file);
 | 
			
		||||
        return file;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const PatchManager patch_manager{current_process_title_id, filesystem_controller,
 | 
			
		||||
                                     content_provider};
 | 
			
		||||
    return MakeResult<VirtualFile>(
 | 
			
		||||
        patch_manager.PatchRomFS(file, ivfc_offset, ContentRecordType::Program, update_raw));
 | 
			
		||||
    return patch_manager.PatchRomFS(file, ivfc_offset, ContentRecordType::Program, update_raw);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<VirtualFile> RomFSFactory::OpenPatchedRomFS(u64 title_id, ContentRecordType type) const {
 | 
			
		||||
@@ -58,8 +57,7 @@ ResultVal<VirtualFile> RomFSFactory::OpenPatchedRomFS(u64 title_id, ContentRecor
 | 
			
		||||
 | 
			
		||||
    const PatchManager patch_manager{title_id, filesystem_controller, content_provider};
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VirtualFile>(
 | 
			
		||||
        patch_manager.PatchRomFS(nca->GetRomFS(), nca->GetBaseIVFCOffset(), type));
 | 
			
		||||
    return patch_manager.PatchRomFS(nca->GetRomFS(), nca->GetBaseIVFCOffset(), type);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<VirtualFile> RomFSFactory::OpenPatchedRomFSWithProgramIndex(
 | 
			
		||||
@@ -83,7 +81,7 @@ ResultVal<VirtualFile> RomFSFactory::Open(u64 title_id, StorageId storage,
 | 
			
		||||
        return ResultUnknown;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VirtualFile>(romfs);
 | 
			
		||||
    return romfs;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
std::shared_ptr<NCA> RomFSFactory::GetEntry(u64 title_id, StorageId storage,
 | 
			
		||||
 
 | 
			
		||||
@@ -94,7 +94,7 @@ ResultVal<VirtualDir> SaveDataFactory::Create(SaveDataSpaceId space,
 | 
			
		||||
        return ResultUnknown;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VirtualDir>(std::move(out));
 | 
			
		||||
    return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<VirtualDir> SaveDataFactory::Open(SaveDataSpaceId space,
 | 
			
		||||
@@ -115,7 +115,7 @@ ResultVal<VirtualDir> SaveDataFactory::Open(SaveDataSpaceId space,
 | 
			
		||||
        return ResultUnknown;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VirtualDir>(std::move(out));
 | 
			
		||||
    return out;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VirtualDir SaveDataFactory::GetSaveDataSpaceDirectory(SaveDataSpaceId space) const {
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ SDMCFactory::SDMCFactory(VirtualDir sd_dir_, VirtualDir sd_mod_dir_)
 | 
			
		||||
SDMCFactory::~SDMCFactory() = default;
 | 
			
		||||
 | 
			
		||||
ResultVal<VirtualDir> SDMCFactory::Open() const {
 | 
			
		||||
    return MakeResult<VirtualDir>(sd_dir);
 | 
			
		||||
    return sd_dir;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
VirtualDir SDMCFactory::GetSDMCModificationLoadRoot(u64 title_id) const {
 | 
			
		||||
 
 | 
			
		||||
@@ -859,7 +859,7 @@ ResultVal<VAddr> KPageTable::SetHeapSize(std::size_t size) {
 | 
			
		||||
        current_heap_addr = heap_region_start + size;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VAddr>(heap_region_start);
 | 
			
		||||
    return heap_region_start;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<VAddr> KPageTable::AllocateAndMapMemory(std::size_t needed_num_pages, std::size_t align,
 | 
			
		||||
@@ -893,7 +893,7 @@ ResultVal<VAddr> KPageTable::AllocateAndMapMemory(std::size_t needed_num_pages,
 | 
			
		||||
 | 
			
		||||
    block_manager->Update(addr, needed_num_pages, state, perm);
 | 
			
		||||
 | 
			
		||||
    return MakeResult<VAddr>(addr);
 | 
			
		||||
    return addr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultCode KPageTable::LockForDeviceAddressSpace(VAddr addr, std::size_t size) {
 | 
			
		||||
 
 | 
			
		||||
@@ -168,7 +168,7 @@ constexpr ResultCode ResultUnknown(UINT32_MAX);
 | 
			
		||||
 *         return ResultCode{ErrorModule::Common, 1};
 | 
			
		||||
 *     } else {
 | 
			
		||||
 *         // Frobnicated! Give caller a cookie
 | 
			
		||||
 *         return MakeResult(42);
 | 
			
		||||
 *         return 42;
 | 
			
		||||
 *     }
 | 
			
		||||
 * }
 | 
			
		||||
 * \endcode
 | 
			
		||||
@@ -279,24 +279,6 @@ private:
 | 
			
		||||
    Common::Expected<T, ResultCode> expected;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * This function is a helper used to construct `ResultVal`s. It receives the arguments to construct
 | 
			
		||||
 * `T` with and creates a `ResultVal` that contains the constructed value.
 | 
			
		||||
 */
 | 
			
		||||
template <typename T, typename... Args>
 | 
			
		||||
[[nodiscard]] ResultVal<T> MakeResult(Args&&... args) {
 | 
			
		||||
    return ResultVal<T>{std::forward<Args>(args)...};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Deducible overload of MakeResult, allowing the template parameter to be ommited if you're just
 | 
			
		||||
 * copy or move constructing.
 | 
			
		||||
 */
 | 
			
		||||
template <typename T>
 | 
			
		||||
[[nodiscard]] ResultVal<std::remove_cvref_t<T>> MakeResult(T&& val) {
 | 
			
		||||
    return ResultVal<std::remove_cvref_t<T>>{std::forward<T>(val)};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Check for the success of `source` (which must evaluate to a ResultVal). If it succeeds, unwraps
 | 
			
		||||
 * the contained value and assigns it to `target`, which can be either an l-value expression or a
 | 
			
		||||
 
 | 
			
		||||
@@ -226,11 +226,10 @@ ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (mode == FileSys::Mode::Append) {
 | 
			
		||||
        return MakeResult<FileSys::VirtualFile>(
 | 
			
		||||
            std::make_shared<FileSys::OffsetVfsFile>(file, 0, file->GetSize()));
 | 
			
		||||
        return std::make_shared<FileSys::OffsetVfsFile>(file, 0, file->GetSize());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<FileSys::VirtualFile>(file);
 | 
			
		||||
    return file;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<FileSys::VirtualDir> VfsDirectoryServiceWrapper::OpenDirectory(const std::string& path_) {
 | 
			
		||||
@@ -240,7 +239,7 @@ ResultVal<FileSys::VirtualDir> VfsDirectoryServiceWrapper::OpenDirectory(const s
 | 
			
		||||
        // TODO(DarkLordZach): Find a better error code for this
 | 
			
		||||
        return FileSys::ERROR_PATH_NOT_FOUND;
 | 
			
		||||
    }
 | 
			
		||||
    return MakeResult(dir);
 | 
			
		||||
    return dir;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<FileSys::EntryType> VfsDirectoryServiceWrapper::GetEntryType(
 | 
			
		||||
@@ -252,12 +251,12 @@ ResultVal<FileSys::EntryType> VfsDirectoryServiceWrapper::GetEntryType(
 | 
			
		||||
    auto filename = Common::FS::GetFilename(path);
 | 
			
		||||
    // TODO(Subv): Some games use the '/' path, find out what this means.
 | 
			
		||||
    if (filename.empty())
 | 
			
		||||
        return MakeResult(FileSys::EntryType::Directory);
 | 
			
		||||
        return FileSys::EntryType::Directory;
 | 
			
		||||
 | 
			
		||||
    if (dir->GetFile(filename) != nullptr)
 | 
			
		||||
        return MakeResult(FileSys::EntryType::File);
 | 
			
		||||
        return FileSys::EntryType::File;
 | 
			
		||||
    if (dir->GetSubdirectory(filename) != nullptr)
 | 
			
		||||
        return MakeResult(FileSys::EntryType::Directory);
 | 
			
		||||
        return FileSys::EntryType::Directory;
 | 
			
		||||
    return FileSys::ERROR_PATH_NOT_FOUND;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -270,7 +269,7 @@ ResultVal<FileSys::FileTimeStampRaw> VfsDirectoryServiceWrapper::GetFileTimeStam
 | 
			
		||||
    if (GetEntryType(path).Failed()) {
 | 
			
		||||
        return FileSys::ERROR_PATH_NOT_FOUND;
 | 
			
		||||
    }
 | 
			
		||||
    return MakeResult(dir->GetFileTimeStamp(Common::FS::GetFilename(path)));
 | 
			
		||||
    return dir->GetFileTimeStamp(Common::FS::GetFilename(path));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FileSystemController::FileSystemController(Core::System& system_) : system{system_} {}
 | 
			
		||||
@@ -395,7 +394,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenSaveDataSpace(
 | 
			
		||||
        return FileSys::ERROR_ENTITY_NOT_FOUND;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult(save_data_factory->GetSaveDataSpaceDirectory(space));
 | 
			
		||||
    return save_data_factory->GetSaveDataSpaceDirectory(space);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<FileSys::VirtualDir> FileSystemController::OpenSDMC() const {
 | 
			
		||||
@@ -421,7 +420,7 @@ ResultVal<FileSys::VirtualDir> FileSystemController::OpenBISPartition(
 | 
			
		||||
        return FileSys::ERROR_INVALID_ARGUMENT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<FileSys::VirtualDir>(std::move(part));
 | 
			
		||||
    return part;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<FileSys::VirtualFile> FileSystemController::OpenBISPartitionStorage(
 | 
			
		||||
@@ -437,7 +436,7 @@ ResultVal<FileSys::VirtualFile> FileSystemController::OpenBISPartitionStorage(
 | 
			
		||||
        return FileSys::ERROR_INVALID_ARGUMENT;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<FileSys::VirtualFile>(std::move(part));
 | 
			
		||||
    return part;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u64 FileSystemController::GetFreeSpaceSize(FileSys::StorageId id) const {
 | 
			
		||||
 
 | 
			
		||||
@@ -26,7 +26,7 @@ ResultVal<ApplicationLaunchProperty> ARPManager::GetLaunchProperty(u64 title_id)
 | 
			
		||||
        return ERR_NOT_REGISTERED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<ApplicationLaunchProperty>(iter->second.launch);
 | 
			
		||||
    return iter->second.launch;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultVal<std::vector<u8>> ARPManager::GetControlProperty(u64 title_id) const {
 | 
			
		||||
@@ -39,7 +39,7 @@ ResultVal<std::vector<u8>> ARPManager::GetControlProperty(u64 title_id) const {
 | 
			
		||||
        return ERR_NOT_REGISTERED;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult<std::vector<u8>>(iter->second.control);
 | 
			
		||||
    return iter->second.control;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultCode ARPManager::Register(u64 title_id, ApplicationLaunchProperty launch,
 | 
			
		||||
 
 | 
			
		||||
@@ -335,7 +335,7 @@ public:
 | 
			
		||||
            CASCADE_CODE(result);
 | 
			
		||||
 | 
			
		||||
            if (ValidateRegionForMap(page_table, addr, size)) {
 | 
			
		||||
                return MakeResult<VAddr>(addr);
 | 
			
		||||
                return addr;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -371,7 +371,7 @@ public:
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (ValidateRegionForMap(page_table, addr, size)) {
 | 
			
		||||
                return MakeResult<VAddr>(addr);
 | 
			
		||||
                return addr;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -443,14 +443,14 @@ ResultVal<std::vector<MiiInfoElement>> MiiManager::GetDefault(SourceFlag source_
 | 
			
		||||
    std::vector<MiiInfoElement> result;
 | 
			
		||||
 | 
			
		||||
    if ((source_flag & SourceFlag::Default) == SourceFlag::None) {
 | 
			
		||||
        return MakeResult(std::move(result));
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (std::size_t index = BaseMiiCount; index < DefaultMiiCount; index++) {
 | 
			
		||||
        result.emplace_back(BuildDefault(index), Source::Default);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult(std::move(result));
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ResultCode MiiManager::GetIndex([[maybe_unused]] const MiiInfo& info, u32& index) {
 | 
			
		||||
 
 | 
			
		||||
@@ -414,7 +414,7 @@ ResultVal<u8> IApplicationManagerInterface::GetApplicationDesiredLanguage(
 | 
			
		||||
    for (const auto lang : *priority_list) {
 | 
			
		||||
        const auto supported_flag = GetSupportedLanguageFlag(lang);
 | 
			
		||||
        if (supported_languages == 0 || (supported_languages & supported_flag) == supported_flag) {
 | 
			
		||||
            return MakeResult(static_cast<u8>(lang));
 | 
			
		||||
            return static_cast<u8>(lang);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -448,7 +448,7 @@ ResultVal<u64> IApplicationManagerInterface::ConvertApplicationLanguageToLanguag
 | 
			
		||||
        return ERR_APPLICATION_LANGUAGE_NOT_FOUND;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return MakeResult(static_cast<u64>(*language_code));
 | 
			
		||||
    return static_cast<u64>(*language_code);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IApplicationVersionInterface::IApplicationVersionInterface(Core::System& system_)
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@ ResultVal<Kernel::KPort*> ServiceManager::GetServicePort(const std::string& name
 | 
			
		||||
    auto handler = it->second;
 | 
			
		||||
    port->GetServerPort().SetSessionHandler(std::move(handler));
 | 
			
		||||
 | 
			
		||||
    return MakeResult(port);
 | 
			
		||||
    return port;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -165,7 +165,7 @@ ResultVal<Kernel::KClientSession*> SM::GetServiceImpl(Kernel::HLERequestContext&
 | 
			
		||||
 | 
			
		||||
    LOG_DEBUG(Service_SM, "called service={} -> session={}", name, session->GetId());
 | 
			
		||||
 | 
			
		||||
    return MakeResult(session);
 | 
			
		||||
    return session;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void SM::RegisterService(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
 
 | 
			
		||||
@@ -120,40 +120,40 @@ ResultVal<u64> Module::Interface::GetConfigImpl(ConfigItem config_item) const {
 | 
			
		||||
        return ResultSecureMonitorNotImplemented;
 | 
			
		||||
    case ConfigItem::ExosphereApiVersion:
 | 
			
		||||
        // Get information about the current exosphere version.
 | 
			
		||||
        return MakeResult((u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MAJOR} << 56) |
 | 
			
		||||
                          (u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MINOR} << 48) |
 | 
			
		||||
                          (u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MICRO} << 40) |
 | 
			
		||||
                          (static_cast<u64>(HLE::ApiVersion::GetTargetFirmware())));
 | 
			
		||||
        return (u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MAJOR} << 56) |
 | 
			
		||||
               (u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MINOR} << 48) |
 | 
			
		||||
               (u64{HLE::ApiVersion::ATMOSPHERE_RELEASE_VERSION_MICRO} << 40) |
 | 
			
		||||
               (static_cast<u64>(HLE::ApiVersion::GetTargetFirmware()));
 | 
			
		||||
    case ConfigItem::ExosphereNeedsReboot:
 | 
			
		||||
        // We are executing, so we aren't in the process of rebooting.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereNeedsShutdown:
 | 
			
		||||
        // We are executing, so we aren't in the process of shutting down.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereGitCommitHash:
 | 
			
		||||
        // Get information about the current exosphere git commit hash.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereHasRcmBugPatch:
 | 
			
		||||
        // Get information about whether this unit has the RCM bug patched.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereBlankProdInfo:
 | 
			
		||||
        // Get whether this unit should simulate a "blanked" PRODINFO.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereAllowCalWrites:
 | 
			
		||||
        // Get whether this unit should allow writing to the calibration partition.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereEmummcType:
 | 
			
		||||
        // Get what kind of emummc this unit has active.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExospherePayloadAddress:
 | 
			
		||||
        // Gets the physical address of the reboot payload buffer, if one exists.
 | 
			
		||||
        return ResultSecureMonitorNotInitialized;
 | 
			
		||||
    case ConfigItem::ExosphereLogConfiguration:
 | 
			
		||||
        // Get the log configuration.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    case ConfigItem::ExosphereForceEnableUsb30:
 | 
			
		||||
        // Get whether usb 3.0 should be force-enabled.
 | 
			
		||||
        return MakeResult(u64{0});
 | 
			
		||||
        return u64{0};
 | 
			
		||||
    default:
 | 
			
		||||
        return ResultSecureMonitorInvalidArgument;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1284,15 +1284,15 @@ private:
 | 
			
		||||
    static ResultVal<ConvertedScaleMode> ConvertScalingModeImpl(NintendoScaleMode mode) {
 | 
			
		||||
        switch (mode) {
 | 
			
		||||
        case NintendoScaleMode::None:
 | 
			
		||||
            return MakeResult(ConvertedScaleMode::None);
 | 
			
		||||
            return ConvertedScaleMode::None;
 | 
			
		||||
        case NintendoScaleMode::Freeze:
 | 
			
		||||
            return MakeResult(ConvertedScaleMode::Freeze);
 | 
			
		||||
            return ConvertedScaleMode::Freeze;
 | 
			
		||||
        case NintendoScaleMode::ScaleToWindow:
 | 
			
		||||
            return MakeResult(ConvertedScaleMode::ScaleToWindow);
 | 
			
		||||
            return ConvertedScaleMode::ScaleToWindow;
 | 
			
		||||
        case NintendoScaleMode::ScaleAndCrop:
 | 
			
		||||
            return MakeResult(ConvertedScaleMode::ScaleAndCrop);
 | 
			
		||||
            return ConvertedScaleMode::ScaleAndCrop;
 | 
			
		||||
        case NintendoScaleMode::PreserveAspectRatio:
 | 
			
		||||
            return MakeResult(ConvertedScaleMode::PreserveAspectRatio);
 | 
			
		||||
            return ConvertedScaleMode::PreserveAspectRatio;
 | 
			
		||||
        default:
 | 
			
		||||
            LOG_ERROR(Service_VI, "Invalid scaling mode specified, mode={}", mode);
 | 
			
		||||
            return ERR_OPERATION_FAILED;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user