diff --git a/src/codechicken/nei/asm/OreDictionaryVisitor.java b/src/codechicken/nei/asm/OreDictionaryVisitor.java index c8add503..33553326 100644 --- a/src/codechicken/nei/asm/OreDictionaryVisitor.java +++ b/src/codechicken/nei/asm/OreDictionaryVisitor.java @@ -7,6 +7,47 @@ import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.MethodVisitor; +/** + * Code without this patch + *
+ public class OreDictionary {
+	 public static int getOreID(String name) {
+		 Integer val = nameToId.get(name);
+		 if (val == null)
+		 {
+			 idToName.add(name);
+			 val = idToName.size() - 1; //0 indexed
+			 nameToId.put(name, val);
+			 idToStack.add(new ArrayList());
+			 idToStackUn.add(new UnmodifiableArrayList(idToStack.get(val)));
+		 }
+		 return val;
+	 }
+ }
+ 
+ Code with this patch +
+ public class OreDictionary {
+	 private static final Object emptyEntryCreationLock = new Object();
+	 public static int getOreID(String name) {
+		 Integer val = nameToId.get(name);
+		 if (val == null)
+		 {
+			 synchronized (emptyEntryCreationLock) {
+ 				 if ((val = nameToId.get(name)) != null)
+ 					 return val;
+				 idToName.add(name);
+				 val = idToName.size() - 1; //0 indexed
+				 nameToId.put(name, val);
+				 idToStack.add(new ArrayList());
+				 idToStackUn.add(new UnmodifiableArrayList(idToStack.get(val)));
+			 }
+		 }
+		 return val;
+	 }
+ }
+ * 
+ */ public class OreDictionaryVisitor extends ClassVisitor { private static class GetOreIDVisitor extends MethodVisitor { Label jumpEnd;