Mercurial > hg > truffle
changeset 17299:072a25e613ba
Use Arrays.hashCode for hashing array fields.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Wed, 01 Oct 2014 14:24:59 +0200 |
parents | 07d5cf34b3c5 |
children | a926a44acfc6 |
files | graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeGenerator.java |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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();