2012-08-20 07:35:14 +00:00
|
|
|
|
|
|
|
cdef class LocalRef:
|
|
|
|
cdef jobject obj
|
|
|
|
cdef JNIEnv *env
|
|
|
|
|
|
|
|
def __cinit__(self):
|
|
|
|
self.obj = NULL
|
|
|
|
self.env = NULL
|
|
|
|
|
|
|
|
def __dealloc__(self):
|
|
|
|
if self.obj != NULL:
|
2013-03-13 17:53:25 +00:00
|
|
|
self.env[0].DeleteGlobalRef(self.env, self.obj)
|
2012-08-20 07:35:14 +00:00
|
|
|
self.obj = NULL
|
|
|
|
self.env = NULL
|
|
|
|
|
|
|
|
cdef void create(self, JNIEnv *env, jobject obj):
|
|
|
|
self.env = env
|
2013-03-13 17:53:25 +00:00
|
|
|
self.obj = env[0].NewGlobalRef(env, obj)
|
2012-08-20 07:35:14 +00:00
|
|
|
|
|
|
|
|
|
|
|
cdef LocalRef create_local_ref(JNIEnv *env, jobject obj):
|
|
|
|
cdef LocalRef ret = LocalRef()
|
|
|
|
ret.create(env, obj)
|
|
|
|
return ret
|
|
|
|
|