Mercurial > hg > jvamp
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); } - -