# HG changeset patch # User Roland Schatz # Date 1412166299 -7200 # Node ID 072a25e613ba4fc25d036efb437b0c5da0dd6ddb # Parent 07d5cf34b3c508a5ef7e21aa0e18899971e5f27d Use Arrays.hashCode for hashing array fields. diff -r 07d5cf34b3c5 -r 072a25e613ba graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java --- a/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java Wed Oct 01 13:04:23 2014 +0200 +++ b/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java Wed Oct 01 14:24:59 2014 +0200 @@ -473,6 +473,13 @@ b.startStatement().string("long longValue = Double.doubleToRawLongBits(", fname, ")").end(); b.startStatement().string("number += 23 * longValue ^ (longValue >>> 32)").end(); break; + case ARRAY: + if (((ArrayType) f.asType()).getComponentType().getKind().isPrimitive()) { + b.startStatement().string("number += 31 * Arrays.hashCode(", fname, ")").end(); + } else { + b.startStatement().string("number += 31 * Arrays.deepHashCode(", fname, ")").end(); + } + break; default: b.startIf().string(fname, " != null").end().startBlock(); b.startStatement().string("number += 29 * ", fname + ".hashCode()").end();