Skip to content

Commit f11ae97

Browse files
committed
The loaded module list should be in the GlobalContext, not a static variable
1 parent 668a79f commit f11ae97

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/vm/jvm/runtime/org/perl6/nqp/runtime/GlobalContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.perl6.nqp.runtime;
22

33
import java.util.HashMap;
4+
import java.util.HashSet;
45

56
import org.perl6.nqp.sixmodel.CodePairContainerConfigurer;
67
import org.perl6.nqp.sixmodel.ContainerConfigurer;
@@ -148,6 +149,11 @@ public class GlobalContext {
148149
*/
149150
public HashMap<String, SixModelObject> scRefs;
150151

152+
/**
153+
* Set of library filenames which have been loaded so far.
154+
*/
155+
public HashSet<String> loaded;
156+
151157
/**
152158
* Whether to dump VM-level stack traces for all exceptions.
153159
*/
@@ -169,6 +175,7 @@ public GlobalContext()
169175
scRefs = new HashMap<String, SixModelObject>();
170176
compilerRegistry = new HashMap<String, SixModelObject>();
171177
hllSyms = new HashMap<String, HashMap<String, SixModelObject>>();
178+
loaded = new HashSet<String>();
172179

173180
contConfigs = new HashMap<String, ContainerConfigurer>();
174181
contConfigs.put("code_pair", new CodePairContainerConfigurer());

src/vm/jvm/runtime/org/perl6/nqp/runtime/LibraryLoader.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,9 @@
66
import java.util.HashSet;
77

88
public class LibraryLoader {
9-
public static HashSet<String> loaded = new HashSet<String>();
10-
119
public void load(ThreadContext tc, String origFilename) {
1210
// Don't load the same thing multiple times.
13-
if (loaded.contains(origFilename))
11+
if (tc.gc.loaded.contains(origFilename))
1412
return;
1513

1614
try {
@@ -40,7 +38,7 @@ public void load(ThreadContext tc, String origFilename) {
4038
cu.runLoadIfAvailable(tc);
4139

4240
// Note that we already loaded it.
43-
loaded.add(origFilename);
41+
tc.gc.loaded.add(origFilename);
4442
}
4543
catch (ControlException e) {
4644
throw e;

0 commit comments

Comments
 (0)