diff src/RealTime.cpp @ 49:2db3640905ef

Rewrite RealTime so as not to use a native object handle, removing onerous and unsatisfactory requirement to call dispose() on all RealTime objects or leak native heap
author Chris Cannam
date Wed, 02 Sep 2015 15:17:40 +0100
parents c9515589be7d
children 5c5c1693235d
line wrap: on
line diff
--- a/src/RealTime.cpp	Wed Mar 06 15:08:40 2013 +0000
+++ b/src/RealTime.cpp	Wed Sep 02 15:17:40 2015 +0100
@@ -36,59 +36,51 @@
 
 #include <vamp-hostsdk/RealTime.h>
 
-#include "handle.h"
+#include "getset.h"
 
 using Vamp::RealTime;
 using std::string;
 
-JNIEXPORT void JNICALL
-Java_org_vamp_1plugins_RealTime_dispose(JNIEnv *env, jobject obj)
-{
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    setHandle<RealTime>(env, obj, 0);
-    delete rt;
-}
-
 JNIEXPORT jint JNICALL
 Java_org_vamp_1plugins_RealTime_sec(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return rt->sec;
+    RealTime rt = getRealTime(env, obj);
+    return rt.sec;
 }
 
 JNIEXPORT jint JNICALL
 Java_org_vamp_1plugins_RealTime_nsec(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return rt->nsec;
+    RealTime rt = getRealTime(env, obj);
+    return rt.nsec;
 }    
 
 JNIEXPORT jint JNICALL
 Java_org_vamp_1plugins_RealTime_usec(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return rt->usec();
+    RealTime rt = getRealTime(env, obj);
+    return rt.usec();
 }
 
 JNIEXPORT jint JNICALL
 Java_org_vamp_1plugins_RealTime_msec(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return rt->msec();
+    RealTime rt = getRealTime(env, obj);
+    return rt.msec();
 }
 
 JNIEXPORT jstring JNICALL
 Java_org_vamp_1plugins_RealTime_toString(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return env->NewStringUTF(rt->toString().c_str());
+    RealTime rt = getRealTime(env, obj);
+    return env->NewStringUTF(rt.toString().c_str());
 }
 
 JNIEXPORT jstring JNICALL
 Java_org_vamp_1plugins_RealTime_toText(JNIEnv *env, jobject obj)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return env->NewStringUTF(rt->toText().c_str());
+    RealTime rt = getRealTime(env, obj);
+    return env->NewStringUTF(rt.toText().c_str());
 }    
 
 JNIEXPORT jobject JNICALL
@@ -121,16 +113,14 @@
 JNIEXPORT jlong JNICALL
 Java_org_vamp_1plugins_RealTime_realTime2Frame(JNIEnv *env, jclass cls, jobject obj, jint sampleRate)
 {
-    RealTime *rt = getHandle<RealTime>(env, obj);
-    return RealTime::realTime2Frame(*rt, sampleRate);
+    RealTime rt = getRealTime(env, obj);
+    return RealTime::realTime2Frame(rt, sampleRate);
 }
 
 JNIEXPORT void JNICALL
 Java_org_vamp_1plugins_RealTime_initialise(JNIEnv *env, jobject obj, jint sec, jint nsec)
 {
-    RealTime *rt = new RealTime(sec, nsec);
-    setHandle(env, obj, rt);
+    setIntField(env, obj, "m_s", sec);
+    setIntField(env, obj, "m_n", nsec);
 }
 
-
-