Add new test output reference files to EXTRA_DIST.
[cacao.git] / tests / gc / native.c
index 6451ec01fcc40364b2f917226f633d1193e0baf8..07063b2e7694f8bbd40c8fb19636f4cd3ca8c907 100644 (file)
@@ -2,6 +2,7 @@
 #include <stdio.h>
 
 static jobject ref = NULL;
+static jobject weak_ref = NULL;
 
 JNIEXPORT void JNICALL Java_NativeGlobalRef_setReference(JNIEnv *env, jclass c, jobject o)
 {
@@ -28,3 +29,33 @@ JNIEXPORT void JNICALL Java_NativeGlobalRef_delReference(JNIEnv *env, jclass c)
 
        return;
 }
+
+JNIEXPORT void JNICALL Java_NativeWeakRef_setWeakReference(JNIEnv *env, jclass c, jobject o)
+{
+       printf("Native-World: setWeakReference()\n");
+
+       weak_ref = (*env)->NewWeakGlobalRef(env, o);
+
+       return;
+}
+
+JNIEXPORT jobject JNICALL Java_NativeWeakRef_getWeakReference(JNIEnv *env, jclass c)
+{
+       jobject local_ref;
+
+       printf("Native-World: getWeakReference()\n");
+
+       //local_ref = weak_ref;
+       local_ref = (*env)->NewLocalRef(env, weak_ref);
+
+       return local_ref;
+}
+
+JNIEXPORT void JNICALL Java_NativeWeakRef_delWeakReference(JNIEnv *env, jclass c)
+{
+       printf("Native-World: delWeakReference()\n");
+
+       (*env)->DeleteWeakGlobalRef(env, weak_ref);
+
+       return;
+}