// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "go/ast" ) func init() { register(jniFix) } var jniFix = fix{ name: "jni", date: "2017-12-04", f: jnifix, desc: `Fixes initializers of JNI's jobject and subtypes`, disabled: false, } // Old state: // // type jobject *_jobject // // New state: // // type jobject uintptr // // and similar for subtypes of jobject. // This fix finds nils initializing these types and replaces the nils with 0s. func jnifix(f *ast.File) bool { return typefix(f, func(s string) bool { switch s { case "C.jobject": return true case "C.jclass": return true case "C.jthrowable": return true case "C.jstring": return true case "C.jarray": return true case "C.jbooleanArray": return true case "C.jbyteArray": return true case "C.jcharArray": return true case "C.jshortArray": return true case "C.jintArray": return true case "C.jlongArray": return true case "C.jfloatArray": return true case "C.jdoubleArray": return true case "C.jobjectArray": return true case "C.jweak": return true } return false }) }