From 57797f6db5d42b292679805fcad02ce199229df6 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Mon, 16 Nov 2009 19:25:02 +0300 Subject: [PATCH] Custom hashCode() implementation semantically identical to Object.hashCode(). This one is much faster since Object.hashCode() is native JNI call. --- .../openapi/roots/impl/OrderEntryBaseImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/OrderEntryBaseImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/OrderEntryBaseImpl.java index 731a7b0de52b..f88309dbe530 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/OrderEntryBaseImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/OrderEntryBaseImpl.java @@ -23,6 +23,10 @@ public abstract class OrderEntryBaseImpl extends RootModelComponentBase implemen private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.OrderEntryVeryBaseImpl"); private int myIndex; + private static int _hc = 0; + + @SuppressWarnings({"AssignmentToStaticFieldFromInstanceMethod"}) + private final int hc = _hc++; protected OrderEntryBaseImpl(RootModelImpl rootModel) { super(rootModel); @@ -40,4 +44,15 @@ public abstract class OrderEntryBaseImpl extends RootModelComponentBase implemen boolean sameType(OrderEntry that) { return getClass().equals(that.getClass()); } + + @Override + @SuppressWarnings({"EqualsWhichDoesntCheckParameterClass"}) + public boolean equals(Object obj) { + return obj == this; + } + + @Override + public int hashCode() { + return hc; + } }