diff options
| author | bunnei <bunneidev@gmail.com> | 2018-10-14 14:42:57 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-14 14:42:57 -0400 | 
| commit | 0d2ba0a3208a2cdc432b325d2d190cfb6be32223 (patch) | |
| tree | d3c0b0783e840228ed3da89faa8a7ddf525cdf37 /src/core | |
| parent | b82bbfba77ef1afe1cc4f8beb2c273c8b66092c8 (diff) | |
| parent | 0149162dba67e2019366a055f25de6a1080061d1 (diff) | |
Merge pull request #1491 from lioncash/reference
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/core.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.cpp | 16 | ||||
| -rw-r--r-- | src/core/hle/service/filesystem/filesystem.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/service.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/service.h | 3 | 
5 files changed, 14 insertions, 15 deletions
| diff --git a/src/core/core.cpp b/src/core/core.cpp index e2fb9e038..32baa40dc 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -148,7 +148,7 @@ struct System::Impl {          telemetry_session = std::make_unique<Core::TelemetrySession>();          service_manager = std::make_shared<Service::SM::ServiceManager>(); -        Service::Init(service_manager, virtual_filesystem); +        Service::Init(service_manager, *virtual_filesystem);          GDBStub::Init();          renderer = VideoCore::CreateRenderer(emu_window); diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp index 439e62d27..e06712603 100644 --- a/src/core/hle/service/filesystem/filesystem.cpp +++ b/src/core/hle/service/filesystem/filesystem.cpp @@ -361,19 +361,19 @@ FileSys::VirtualDir GetModificationLoadRoot(u64 title_id) {      return bis_factory->GetModificationLoadRoot(title_id);  } -void CreateFactories(const FileSys::VirtualFilesystem& vfs, bool overwrite) { +void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) {      if (overwrite) {          bis_factory = nullptr;          save_data_factory = nullptr;          sdmc_factory = nullptr;      } -    auto nand_directory = vfs->OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), -                                             FileSys::Mode::ReadWrite); -    auto sd_directory = vfs->OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir), -                                           FileSys::Mode::ReadWrite); -    auto load_directory = vfs->OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir), -                                             FileSys::Mode::ReadWrite); +    auto nand_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir), +                                            FileSys::Mode::ReadWrite); +    auto sd_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir), +                                          FileSys::Mode::ReadWrite); +    auto load_directory = vfs.OpenDirectory(FileUtil::GetUserPath(FileUtil::UserPath::LoadDir), +                                            FileSys::Mode::ReadWrite);      if (bis_factory == nullptr)          bis_factory = std::make_unique<FileSys::BISFactory>(nand_directory, load_directory); @@ -383,7 +383,7 @@ void CreateFactories(const FileSys::VirtualFilesystem& vfs, bool overwrite) {          sdmc_factory = std::make_unique<FileSys::SDMCFactory>(std::move(sd_directory));  } -void InstallInterfaces(SM::ServiceManager& service_manager, const FileSys::VirtualFilesystem& vfs) { +void InstallInterfaces(SM::ServiceManager& service_manager, FileSys::VfsFilesystem& vfs) {      romfs_factory = nullptr;      CreateFactories(vfs, false);      std::make_shared<FSP_LDR>()->InstallAsService(service_manager); diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h index 53b01bb01..2df1faeb0 100644 --- a/src/core/hle/service/filesystem/filesystem.h +++ b/src/core/hle/service/filesystem/filesystem.h @@ -57,9 +57,9 @@ FileSys::VirtualDir GetModificationLoadRoot(u64 title_id);  // Creates the SaveData, SDMC, and BIS Factories. Should be called once and before any function  // above is called. -void CreateFactories(const FileSys::VirtualFilesystem& vfs, bool overwrite = true); +void CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite = true); -void InstallInterfaces(SM::ServiceManager& service_manager, const FileSys::VirtualFilesystem& vfs); +void InstallInterfaces(SM::ServiceManager& service_manager, FileSys::VfsFilesystem& vfs);  // A class that wraps a VfsDirectory with methods that return ResultVal and ResultCode instead of  // pointers and booleans. This makes using a VfsDirectory with switch services much easier and diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 62f049660..a225cb4cb 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -197,7 +197,7 @@ ResultCode ServiceFrameworkBase::HandleSyncRequest(Kernel::HLERequestContext& co  // Module interface  /// Initialize ServiceManager -void Init(std::shared_ptr<SM::ServiceManager>& sm, const FileSys::VirtualFilesystem& rfs) { +void Init(std::shared_ptr<SM::ServiceManager>& sm, FileSys::VfsFilesystem& vfs) {      // NVFlinger needs to be accessed by several services like Vi and AppletOE so we instantiate it      // here and pass it into the respective InstallInterfaces functions.      auto nv_flinger = std::make_shared<NVFlinger::NVFlinger>(); @@ -220,7 +220,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm, const FileSys::VirtualFilesys      EUPLD::InstallInterfaces(*sm);      Fatal::InstallInterfaces(*sm);      FGM::InstallInterfaces(*sm); -    FileSystem::InstallInterfaces(*sm, rfs); +    FileSystem::InstallInterfaces(*sm, vfs);      Friend::InstallInterfaces(*sm);      GRC::InstallInterfaces(*sm);      HID::InstallInterfaces(*sm); diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index 2fc57a82e..98483ecf1 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -180,8 +180,7 @@ private:  };  /// Initialize ServiceManager -void Init(std::shared_ptr<SM::ServiceManager>& sm, -          const std::shared_ptr<FileSys::VfsFilesystem>& vfs); +void Init(std::shared_ptr<SM::ServiceManager>& sm, FileSys::VfsFilesystem& vfs);  /// Shutdown ServiceManager  void Shutdown(); | 
