summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2017-05-11 13:41:41 +0000
committerkrasimir <krasimir@chalmers.se>2017-05-11 13:41:41 +0000
commitebb085326ebfdaa7329c266b253310dfe4cb46a7 (patch)
treec8669b4c04762432c6ce6d8f283bc6695107875e /src
parentc2c95644bddf3f501de665f58cba5a0e3a204f84 (diff)
just for fun: hashCode for expressions
Diffstat (limited to 'src')
-rw-r--r--src/runtime/java/jpgf.c7
-rw-r--r--src/runtime/java/org/grammaticalframework/pgf/Expr.java2
2 files changed, 9 insertions, 0 deletions
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);