]> Repositorios git - scryer-prolog.git/commitdiff
use add_dynamically_generated_module in get_or_insert_local_code_index
authorMark Thom <[email protected]>
Thu, 18 Feb 2021 21:15:28 +0000 (14:15 -0700)
committerMark Thom <[email protected]>
Thu, 18 Feb 2021 21:15:28 +0000 (14:15 -0700)
src/machine/load_state.rs

index 41f392481e2d3faac5e4d357e15f3c86752bf316..0a2fca5a08a749173ad198b6d37d796bba078ae9 100644 (file)
@@ -559,25 +559,20 @@ impl<'a> LoadState<'a> {
                 .or_insert_with(|| CodeIndex::new(IndexPtr::Undefined))
                 .clone(),
             None => {
-                let mut module = Module::new(
-                    ModuleDecl {
-                        name: module_name.clone(),
-                        exports: vec![],
-                    },
-                    ListingSource::DynamicallyGenerated,
-                );
-
-                let code_index = module
-                    .code_dir
-                    .entry(key)
-                    .or_insert_with(|| CodeIndex::new(IndexPtr::Undefined))
-                    .clone();
-
-                self.retraction_info
-                    .push_record(RetractionRecord::AddedModule(module_name.clone()));
+                self.add_dynamically_generated_module(&module_name);
 
-                self.wam.indices.modules.insert(module_name, module);
-                code_index
+                match self.wam.indices.modules.get_mut(&module_name) {
+                    Some(ref mut module) => {
+                        module
+                            .code_dir
+                            .entry(key)
+                            .or_insert_with(|| CodeIndex::new(IndexPtr::Undefined))
+                            .clone()
+                    }
+                    None => {
+                        unreachable!()
+                    }
+                }
             }
         }
     }