Skip to content

Commit 634bcbd

Browse files
committed
Complete New*Ref methods for Array and Class
1 parent f837f74 commit 634bcbd

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

include/jni/array.hpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ namespace jni
8686
{
8787
return Global<Array<E>, Deleter>(env, jni::NewGlobalRef(env, array).release());
8888
}
89+
90+
template < template < RefDeletionMethod > class Deleter = DefaultRefDeleter >
91+
Weak<Array<E>, Deleter> NewWeakGlobalRef(JNIEnv& env) const
92+
{
93+
return Weak<Array<E>, Deleter>(env, jni::NewWeakGlobalRef(env, array).release());
94+
}
95+
96+
Local<Array<E>> NewLocalRef(JNIEnv& env) const
97+
{
98+
return Local<Array<E>>(env, jni::NewLocalRef(env, array).release());
99+
}
89100
};
90101

91102
template < class TheTag >
@@ -154,6 +165,17 @@ namespace jni
154165
{
155166
return Global<Array<Object<TheTag>>, Deleter>(env, jni::NewGlobalRef(env, array).release());
156167
}
168+
169+
template < template < RefDeletionMethod > class Deleter = DefaultRefDeleter >
170+
Weak<Array<Object<TheTag>>, Deleter> NewWeakGlobalRef(JNIEnv& env) const
171+
{
172+
return Weak<Array<Object<TheTag>>, Deleter>(env, jni::NewWeakGlobalRef(env, array).release());
173+
}
174+
175+
Local<Array<Object<TheTag>>> NewLocalRef(JNIEnv& env) const
176+
{
177+
return Local<Array<Object<TheTag>>>(env, jni::NewLocalRef(env, array).release());
178+
}
157179
};
158180

159181
template < class T >

include/jni/class.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,5 +156,16 @@ namespace jni
156156
{
157157
return Global<Class<TagType>, Deleter>(env, jni::NewGlobalRef(env, clazz).release());
158158
}
159+
160+
template < template < RefDeletionMethod > class Deleter = DefaultRefDeleter >
161+
Weak<Class<TagType>, Deleter> NewWeakGlobalRef(JNIEnv& env) const
162+
{
163+
return Weak<Class<TagType>, Deleter>(env, jni::NewWeakGlobalRef(env, clazz).release());
164+
}
165+
166+
Local<Class<TagType>> NewLocalRef(JNIEnv& env) const
167+
{
168+
return Local<Class<TagType>>(env, jni::NewLocalRef(env, clazz).release());
169+
}
159170
};
160171
}

0 commit comments

Comments
 (0)