From ebb085326ebfdaa7329c266b253310dfe4cb46a7 Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 11 May 2017 13:41:41 +0000 Subject: [PATCH] just for fun: hashCode for expressions --- src/runtime/java/jpgf.c | 7 +++++++ src/runtime/java/org/grammaticalframework/pgf/Expr.java | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/runtime/java/jpgf.c b/src/runtime/java/jpgf.c index bca7a64e0..9b09068d5 100644 --- a/src/runtime/java/jpgf.c +++ b/src/runtime/java/jpgf.c @@ -1388,6 +1388,13 @@ Java_org_grammaticalframework_pgf_Expr_equals(JNIEnv* env, jobject self, jobject return JNI_FALSE; } +JNIEXPORT jint JNICALL +Java_org_grammaticalframework_pgf_Expr_hashCode(JNIEnv* env, jobject self) +{ + PgfExpr e = gu_variant_from_ptr(l2p(get_ref(env, self))); + return pgf_expr_hash(0, e); +} + JNIEXPORT jstring JNICALL Java_org_grammaticalframework_pgf_Type_getCategory(JNIEnv* env, jobject self) { diff --git a/src/runtime/java/org/grammaticalframework/pgf/Expr.java b/src/runtime/java/org/grammaticalframework/pgf/Expr.java index cdc62d1d1..08e75ea04 100644 --- a/src/runtime/java/org/grammaticalframework/pgf/Expr.java +++ b/src/runtime/java/org/grammaticalframework/pgf/Expr.java @@ -102,6 +102,8 @@ public class Expr implements Serializable { * @return True if the expressions are equal. */ public native boolean equals(Expr e); + public native int hashCode(); + private static native String showExpr(long ref); private static native long initStringLit(String s, long pool);