Merge "v.io/x/jni: remove Wrap* functions now that we cast to uintptr at the caller."
diff --git a/util/jni_wrapper.c b/util/jni_wrapper.c
index 01bd769..ffdb0f7 100644
--- a/util/jni_wrapper.c
+++ b/util/jni_wrapper.c
@@ -82,6 +82,10 @@
   return (*env)->GetIntField(env, obj, fieldID);
 }
 
+jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID) {
+  return (*env)->GetLongField(env, obj, fieldID);
+}
+
 jobject GetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fieldID) {
   return (*env)->GetStaticObjectField(env, cls, fieldID);
 }
diff --git a/util/jni_wrapper.h b/util/jni_wrapper.h
index 29dd528..7093b1c 100644
--- a/util/jni_wrapper.h
+++ b/util/jni_wrapper.h
@@ -51,6 +51,7 @@
 jobject GetObjectField(JNIEnv* env, jobject obj, jfieldID fieldID);
 jboolean GetBooleanField(JNIEnv* env, jobject obj, jfieldID fieldID);
 jint GetIntField(JNIEnv* env, jobject obj, jfieldID fieldID);
+jlong GetLongField(JNIEnv* env, jobject obj, jfieldID fieldID);
 jobject GetStaticObjectField(JNIEnv* env, jclass cls, jfieldID fieldID);
 
 // Constructs a new array holding objects of type jclass.
diff --git a/util/util.go b/util/util.go
index 2576e73..6a071c4 100644
--- a/util/util.go
+++ b/util/util.go
@@ -363,6 +363,16 @@
 	return int(C.GetIntField(env.value(), obj.value(), fid)), nil
 }
 
+// JLongField returns the value of the provided Java object's long field, or
+// error if the field value couldn't be retrieved.
+func JLongField(env Env, obj Object, field string) (int64, error) {
+	fid, err := jFieldID(env, GetClass(env, obj), field, LongSign)
+	if err != nil {
+		return -1, err
+	}
+	return int64(C.GetLongField(env.value(), obj.value(), fid)), nil
+}
+
 // JStringField returns the value of the provided Java object's String field, or
 // error if the field value couldn't be retrieved.
 func JStringField(env Env, obj Object, field string) (string, error) {
diff --git a/v23/security/store.go b/v23/security/store.go
index e4ceabd..3b0d4c5 100644
--- a/v23/security/store.go
+++ b/v23/security/store.go
@@ -36,7 +36,7 @@
 	}
 	if jutil.IsInstanceOf(env, jBlessingStore, jBlessingStoreImplClass) {
 		// Called with our implementation of BlessingStore, which maintains a Go pointer - use it.
-		goPtr, err := jutil.CallLongMethod(env, jBlessingStore, "nativePtr", nil)
+		goPtr, err := jutil.JLongField(env, jBlessingStore, "nativePtr")
 		if err != nil {
 			return nil, err
 		}