diff --git a/impl/google/namespace/jni.go b/impl/google/namespace/jni.go
index aa39aeb..89c92eb 100644
--- a/impl/google/namespace/jni.go
+++ b/impl/google/namespace/jni.go
@@ -87,5 +87,5 @@
 
 //export Java_io_v_impl_google_namespace_Namespace_nativeFinalize
 func Java_io_v_impl_google_namespace_Namespace_nativeFinalize(env *C.JNIEnv, jNamespace C.jobject, goNamespacePtr C.jlong) {
-	jutil.GoUnref((*namespace.T)(jutil.Ptr(goNamespacePtr)))
+	jutil.GoUnref(jutil.Ptr(goNamespacePtr))
 }
diff --git a/impl/google/rpc/jni.go b/impl/google/rpc/jni.go
index cdac402..248e741 100644
--- a/impl/google/rpc/jni.go
+++ b/impl/google/rpc/jni.go
@@ -308,7 +308,7 @@
 
 //export Java_io_v_impl_google_rpc_Server_nativeFinalize
 func Java_io_v_impl_google_rpc_Server_nativeFinalize(env *C.JNIEnv, server C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.Server)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_Client_nativeStartCall
@@ -352,7 +352,7 @@
 
 //export Java_io_v_impl_google_rpc_Client_nativeFinalize
 func Java_io_v_impl_google_rpc_Client_nativeFinalize(env *C.JNIEnv, jClient C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.Client)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_Stream_nativeSend
@@ -390,7 +390,7 @@
 
 //export Java_io_v_impl_google_rpc_Stream_nativeFinalize
 func Java_io_v_impl_google_rpc_Stream_nativeFinalize(env *C.JNIEnv, jStream C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.Stream)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_Call_nativeCloseSend
@@ -433,7 +433,7 @@
 
 //export Java_io_v_impl_google_rpc_Call_nativeFinalize
 func Java_io_v_impl_google_rpc_Call_nativeFinalize(env *C.JNIEnv, jCall C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.ClientCall)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_ServerCall_nativeSuffix
@@ -475,12 +475,12 @@
 
 //export Java_io_v_impl_google_rpc_ServerCall_nativeFinalize
 func Java_io_v_impl_google_rpc_ServerCall_nativeFinalize(env *C.JNIEnv, jServerCall C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.ServerCall)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_StreamServerCall_nativeFinalize
 func Java_io_v_impl_google_rpc_StreamServerCall_nativeFinalize(env *C.JNIEnv, jStreamServerCall C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*rpc.StreamServerCall)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_impl_google_rpc_AddressChooser_nativeChoose
@@ -506,5 +506,5 @@
 
 //export Java_io_v_impl_google_rpc_AddressChooser_nativeFinalize
 func Java_io_v_impl_google_rpc_AddressChooser_nativeFinalize(env *C.JNIEnv, jAddressChooser C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*func(protocol string, candidates []net.Addr) ([]net.Addr, error))(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
diff --git a/v23/context/jni.go b/v23/context/jni.go
index 3a201d2..d3adb84 100644
--- a/v23/context/jni.go
+++ b/v23/context/jni.go
@@ -166,8 +166,8 @@
 
 //export Java_io_v_v23_context_VContextImpl_nativeFinalize
 func Java_io_v_v23_context_VContextImpl_nativeFinalize(env *C.JNIEnv, jVContextImpl C.jobject, goPtr C.jlong, goCancelPtr C.jlong) {
-	jutil.GoUnref((*context.T)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 	if goCancelPtr != 0 {
-		jutil.GoUnref((*context.CancelFunc)(jutil.Ptr(goCancelPtr)))
+		jutil.GoUnref(jutil.Ptr(goCancelPtr))
 	}
 }
diff --git a/v23/security/access/jni.go b/v23/security/access/jni.go
index a7760b3..92e4f73 100644
--- a/v23/security/access/jni.go
+++ b/v23/security/access/jni.go
@@ -83,5 +83,5 @@
 
 //export Java_io_v_v23_security_access_ACLWrapper_nativeFinalize
 func Java_io_v_v23_security_access_ACLWrapper_nativeFinalize(env *C.JNIEnv, jACLWrapper C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*access.AccessList)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
diff --git a/v23/security/jni.go b/v23/security/jni.go
index 33d5631..d243b2b 100644
--- a/v23/security/jni.go
+++ b/v23/security/jni.go
@@ -211,7 +211,7 @@
 
 //export Java_io_v_v23_security_CallImpl_nativeFinalize
 func Java_io_v_v23_security_CallImpl_nativeFinalize(env *C.JNIEnv, jCall C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.Call)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_v23_security_PrincipalImpl_nativeCreate
@@ -492,7 +492,7 @@
 
 //export Java_io_v_v23_security_PrincipalImpl_nativeFinalize
 func Java_io_v_v23_security_PrincipalImpl_nativeFinalize(env *C.JNIEnv, jPrincipalImpl C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.Principal)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_v23_security_Blessings_nativeCreate
@@ -559,7 +559,7 @@
 
 //export Java_io_v_v23_security_Blessings_nativeFinalize
 func Java_io_v_v23_security_Blessings_nativeFinalize(env *C.JNIEnv, jBlessings C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.Blessings)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_v23_security_BlessingRootsImpl_nativeAdd
@@ -607,7 +607,7 @@
 
 //export Java_io_v_v23_security_BlessingRootsImpl_nativeFinalize
 func Java_io_v_v23_security_BlessingRootsImpl_nativeFinalize(env *C.JNIEnv, jBlessingRootsImpl C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.BlessingRoots)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_v23_security_BlessingStoreImpl_nativeSet
@@ -721,7 +721,7 @@
 
 //export Java_io_v_v23_security_BlessingStoreImpl_nativeFinalize
 func Java_io_v_v23_security_BlessingStoreImpl_nativeFinalize(env *C.JNIEnv, jBlessingStoreImpl C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.BlessingStore)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
 
 //export Java_io_v_v23_security_BlessingPatternWrapper_nativeWrap
@@ -771,5 +771,5 @@
 
 //export Java_io_v_v23_security_BlessingPatternWrapper_nativeFinalize
 func Java_io_v_v23_security_BlessingPatternWrapper_nativeFinalize(env *C.JNIEnv, jBlessingPatternWrapper C.jobject, goPtr C.jlong) {
-	jutil.GoUnref((*security.BlessingPattern)(jutil.Ptr(goPtr)))
+	jutil.GoUnref(jutil.Ptr(goPtr))
 }
