93 }
94
95 int n = moduleNames.length;
96 moduleCount.add(n);
97
98 Set<ModuleReference> mods = new HashSet<>(n);
99 Map<String, ModuleReference> map = new HashMap<>(n);
100
101 for (int i = 0; i < n; i++) {
102 String mn = moduleNames[i];
103 ModuleDescriptor md;
104 if (fastLoad) {
105 md = descriptors[i];
106 } else {
107 // fallback to read module-info.class
108 // if fast loading of ModuleDescriptors is disabled
109 ImageLocation location = imageReader.findLocation(mn, "module-info.class");
110 md = ModuleDescriptor.read(imageReader.getResourceBuffer(location));
111 }
112 if (!md.name().equals(mn))
113 throw new InternalError();
114
115 // create the ModuleReference
116
117 URI uri = URI.create("jrt:/" + mn);
118
119 Supplier<ModuleReader> readerSupplier = new Supplier<>() {
120 @Override
121 public ModuleReader get() {
122 return new ImageModuleReader(mn, uri);
123 }
124 };
125
126 ModuleReference mref = new ModuleReference(md, uri, readerSupplier);
127
128 // may need a reference to a patched module if -Xpatch specified
129 mref = ModulePatcher.interposeIfNeeded(mref);
130
131 mods.add(mref);
132 map.put(mn, mref);
133
|
93 }
94
95 int n = moduleNames.length;
96 moduleCount.add(n);
97
98 Set<ModuleReference> mods = new HashSet<>(n);
99 Map<String, ModuleReference> map = new HashMap<>(n);
100
101 for (int i = 0; i < n; i++) {
102 String mn = moduleNames[i];
103 ModuleDescriptor md;
104 if (fastLoad) {
105 md = descriptors[i];
106 } else {
107 // fallback to read module-info.class
108 // if fast loading of ModuleDescriptors is disabled
109 ImageLocation location = imageReader.findLocation(mn, "module-info.class");
110 md = ModuleDescriptor.read(imageReader.getResourceBuffer(location));
111 }
112 if (!md.name().equals(mn))
113 throw new InternalError(md.name() + " is not equal to " + mn);
114
115 // create the ModuleReference
116
117 URI uri = URI.create("jrt:/" + mn);
118
119 Supplier<ModuleReader> readerSupplier = new Supplier<>() {
120 @Override
121 public ModuleReader get() {
122 return new ImageModuleReader(mn, uri);
123 }
124 };
125
126 ModuleReference mref = new ModuleReference(md, uri, readerSupplier);
127
128 // may need a reference to a patched module if -Xpatch specified
129 mref = ModulePatcher.interposeIfNeeded(mref);
130
131 mods.add(mref);
132 map.put(mn, mref);
133
|