1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| // 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
| })
| }
|
|