forked from xlab/android-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jvalue.go
56 lines (45 loc) · 1019 Bytes
/
jvalue.go
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
package android
import "unsafe"
// typedef union jvalue {
// jboolean z;
// jbyte b;
// jchar c;
// jshort s;
// jint i;
// jlong j;
// jfloat f;
// jdouble d;
// jobject l;
// } jvalue;
func JbooleanV(z bool) Jvalue {
if z {
var b = JNITrue
return *(*Jvalue)(unsafe.Pointer(&b))
}
var b = JNIFalse
return *(*Jvalue)(unsafe.Pointer(&b))
}
func JbyteV(b byte) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&b))
}
func JcharV(c uint16) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&c))
}
func JshortV(s int16) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&s))
}
func JintV(i int32) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&i))
}
func JlongV(j int32) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&j))
}
func JfloatV(f float32) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&f))
}
func JdoubleV(d float64) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&d))
}
func JobjectV(l Jobject) Jvalue {
return *(*Jvalue)(unsafe.Pointer(&l))
}