Skip to content

Commit 69c7894

Browse files
shoumikhinfacebook-github-bot
authored andcommitted
Refactor data loader creation.
Summary: . Differential Revision: D79852887
1 parent afdbb85 commit 69c7894

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

extension/module/module.cpp

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -42,28 +42,31 @@ using ET_RUNTIME_NAMESPACE::MethodMeta;
4242
using ET_RUNTIME_NAMESPACE::Program;
4343

4444
namespace {
45-
runtime::Result<std::unique_ptr<runtime::DataLoader>> load_file(
45+
runtime::Result<std::unique_ptr<runtime::DataLoader>> make_data_loader(
4646
const std::string& file_path,
4747
Module::LoadMode mode) {
48-
std::unique_ptr<runtime::DataLoader> res = nullptr;
48+
std::unique_ptr<runtime::DataLoader> data_loader;
4949
switch (mode) {
5050
case Module::LoadMode::File:
51-
res = ET_UNWRAP_UNIQUE(FileDataLoader::from(file_path.c_str()));
51+
data_loader = ET_UNWRAP_UNIQUE(FileDataLoader::from(file_path.c_str()));
5252
break;
5353
case Module::LoadMode::Mmap:
54-
res = ET_UNWRAP_UNIQUE(MmapDataLoader::from(
55-
file_path.c_str(), MmapDataLoader::MlockConfig::NoMlock));
54+
data_loader = ET_UNWRAP_UNIQUE(
55+
MmapDataLoader::from(file_path.c_str(),
56+
MmapDataLoader::MlockConfig::NoMlock)
57+
);
5658
break;
5759
case Module::LoadMode::MmapUseMlock:
58-
res = ET_UNWRAP_UNIQUE(MmapDataLoader::from(file_path.c_str()));
60+
data_loader = ET_UNWRAP_UNIQUE(MmapDataLoader::from(file_path.c_str()));
5961
break;
6062
case Module::LoadMode::MmapUseMlockIgnoreErrors:
61-
res = ET_UNWRAP_UNIQUE(MmapDataLoader::from(
62-
file_path.c_str(),
63-
MmapDataLoader::MlockConfig::UseMlockIgnoreErrors));
63+
data_loader = ET_UNWRAP_UNIQUE(
64+
MmapDataLoader::from(file_path.c_str(),
65+
MmapDataLoader::MlockConfig::UseMlockIgnoreErrors)
66+
);
6467
break;
6568
}
66-
return res;
69+
return data_loader;
6770
}
6871
} // namespace
6972

@@ -137,29 +140,16 @@ Module::Module(
137140

138141
runtime::Error Module::load(const Program::Verification verification) {
139142
if (!is_loaded()) {
140-
// Load the program
141143
if (!data_loader_) {
142-
auto res = load_file(file_path_, load_mode_);
143-
if (!res.ok()) {
144-
return res.error();
145-
}
146-
data_loader_ = std::move(res.get());
144+
data_loader_ = ET_UNWRAP(make_data_loader(file_path_, load_mode_));
147145
}
148-
// If a .ptd path was given load it.
149-
if (data_map_path_ != "") {
150-
auto res = load_file(data_map_path_, load_mode_);
151-
if (!res.ok()) {
152-
return res.error();
153-
}
154-
data_map_loader_ = std::move(res.get());
146+
if (!data_map_path_.empty()) {
147+
data_map_loader_ = ET_UNWRAP(make_data_loader(data_map_path_, load_mode_));
155148
}
156-
// If we have a .ptd loader, then load the map.
157149
if (data_map_loader_) {
158150
data_map_ =
159151
ET_UNWRAP_UNIQUE(FlatTensorDataMap::load(data_map_loader_.get()));
160152
}
161-
// else: either the map itself was provided or we have no data map, either
162-
// way no work to do.
163153
auto program =
164154
ET_UNWRAP_UNIQUE(Program::load(data_loader_.get(), verification));
165155
program_ = std::shared_ptr<Program>(

0 commit comments

Comments
 (0)