(o *types.TypeName, f *types.Var)
| 1060 | } |
| 1061 | |
| 1062 | func (g *JavaGen) genJNIField(o *types.TypeName, f *types.Var) { |
| 1063 | if t := f.Type(); !g.isSupported(t) { |
| 1064 | g.Printf("// skipped field %s with unsupported type: %s\n\n", o.Name(), t) |
| 1065 | return |
| 1066 | } |
| 1067 | n := java.JNIMangle(g.javaTypeName(o.Name())) |
| 1068 | // setter |
| 1069 | g.Printf("JNIEXPORT void JNICALL\n") |
| 1070 | g.Printf("Java_%s_%s_set%s(JNIEnv *env, jobject this, %s v) {\n", g.jniPkgName(), n, java.JNIMangle(f.Name()), g.jniType(f.Type())) |
| 1071 | g.Indent() |
| 1072 | g.Printf("int32_t o = go_seq_to_refnum_go(env, this);\n") |
| 1073 | g.genJavaToC("v", f.Type(), modeRetained) |
| 1074 | g.Printf("proxy%s_%s_%s_Set(o, _v);\n", g.pkgPrefix, o.Name(), f.Name()) |
| 1075 | g.genRelease("v", f.Type(), modeRetained) |
| 1076 | g.Outdent() |
| 1077 | g.Printf("}\n\n") |
| 1078 | |
| 1079 | // getter |
| 1080 | g.Printf("JNIEXPORT %s JNICALL\n", g.jniType(f.Type())) |
| 1081 | g.Printf("Java_%s_%s_get%s(JNIEnv *env, jobject this) {\n", g.jniPkgName(), n, java.JNIMangle(f.Name())) |
| 1082 | g.Indent() |
| 1083 | g.Printf("int32_t o = go_seq_to_refnum_go(env, this);\n") |
| 1084 | g.Printf("%s r0 = ", g.cgoType(f.Type())) |
| 1085 | g.Printf("proxy%s_%s_%s_Get(o);\n", g.pkgPrefix, o.Name(), f.Name()) |
| 1086 | g.genCToJava("_r0", "r0", f.Type(), modeRetained) |
| 1087 | g.Printf("return _r0;\n") |
| 1088 | g.Outdent() |
| 1089 | g.Printf("}\n\n") |
| 1090 | } |
| 1091 | |
| 1092 | func (g *JavaGen) genJNIVar(o *types.Var) { |
| 1093 | if t := o.Type(); !g.isSupported(t) { |
no test coverage detected