Skip to content

Commit 92792c6

Browse files
committed
Clean-up after the fix for issue #4
1 parent 621df7a commit 92792c6

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

SimulatorsPackage/src/main/java/Hack/Gates/GateClass.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -112,15 +112,18 @@ public static GateClass getGateClass(String gateName, boolean containsPath) thro
112112

113113
// gate wasn't found in cache
114114
if (result == null) {
115-
if (classesBeingLoaded.contains(gateName))
116-
throw new HDLException("Cyclic dependency. Gate definition (possibly indirectly) depends on itself: "
117-
+ gateName);
118-
119-
classesBeingLoaded.add(gateName);
120-
HDLTokenizer input = new HDLTokenizer(fileName);
121-
result = readHDL(input, gateName);
122-
GateClasses.put(fileName, result);
123-
classesBeingLoaded.remove(gateName);
115+
try {
116+
if (classesBeingLoaded.contains(gateName))
117+
throw new HDLException("Cyclic dependency. Gate definition (possibly indirectly) depends on itself: "
118+
+ gateName);
119+
120+
classesBeingLoaded.add(gateName);
121+
HDLTokenizer input = new HDLTokenizer(fileName);
122+
result = readHDL(input, gateName);
123+
GateClasses.put(fileName, result);
124+
} finally {
125+
classesBeingLoaded.remove(gateName);
126+
}
124127
}
125128

126129
return result;

0 commit comments

Comments
 (0)