Update of /cvsroot/freenet/freenet/src/freenet In directory sc8-pr-cvs1:/tmp/cvs-serv23607
Modified Files: DSAIdentity.java Log Message: Compute hash code only once and save it in object. Index: DSAIdentity.java =================================================================== RCS file: /cvsroot/freenet/freenet/src/freenet/DSAIdentity.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DSAIdentity.java 6 Jul 2003 17:14:09 -0000 1.2 +++ DSAIdentity.java 24 Sep 2003 01:21:32 -0000 1.3 @@ -1,3 +1,4 @@ +/* -*- Mode: java; c-basic-indent: 4; tab-width: 4 -*- */ package freenet; import freenet.crypt.*; @@ -13,6 +14,7 @@ * @author tavin */ public class DSAIdentity extends DSAPublicKey implements Identity { + private final int hashed; /** * Create a DSAIdentity @@ -21,6 +23,7 @@ */ public DSAIdentity(DSAGroup g, DSAAuthentity x) { super(g, x); + hashed = makeHashCode(); } /** @@ -30,6 +33,7 @@ */ public DSAIdentity(DSAGroup g, BigInteger y) { super(g, y); + hashed = makeHashCode(); } /** @@ -39,6 +43,7 @@ */ public DSAIdentity(DSAGroup g, String yAsHexString) { super(g, yAsHexString); + hashed = makeHashCode(); } // FIXME: eliminate this constructor @@ -47,6 +52,7 @@ Global.DSAgroupC : (DSAGroup) DSAGroup.readFromField(grp)), value); + hashed = makeHashCode(); } /** @@ -55,6 +61,7 @@ */ public DSAIdentity(FieldSet fs) throws NumberFormatException { this(getGroup(fs), getYasHexString(fs)); + hashed = makeHashCode(); } @@ -127,9 +134,13 @@ } public final int hashCode() { - return getY().shiftRight(getY().bitLength()-32).intValue(); + return hashed; } + private final int makeHashCode() { + return getY().shiftRight(getY().bitLength()-32).intValue(); + } + public final int compareTo(Object o) { if (o == null) return 1; _______________________________________________ cvs mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs