@@ -42,28 +42,31 @@ using ET_RUNTIME_NAMESPACE::MethodMeta;
4242using ET_RUNTIME_NAMESPACE::Program;
4343
4444namespace {
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
138141runtime::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