# HG changeset patch # User Chris Cannam # Date 1352929651 0 # Node ID fd185c6a74d215fbed2b2a14d67f80de5d3a65ac # Parent cd430fbf6795b0bdd63d86e6751a99a108e58dde Clean up local references diff -r cd430fbf6795 -r fd185c6a74d2 src/Plugin.cpp --- a/src/Plugin.cpp Wed Nov 14 18:10:40 2012 +0000 +++ b/src/Plugin.cpp Wed Nov 14 21:47:31 2012 +0000 @@ -176,9 +176,12 @@ std::string dname = "TimeDomain"; if (d == Plugin::FrequencyDomain) dname = "FrequencyDomain"; - return env->CallStaticObjectMethod - (ourEnumClass, getEnumValueOfMethod(env), ourEnumClass, - env->NewStringUTF(dname.c_str())); //!!! string leaked! + jstring sn = env->NewStringUTF(dname.c_str()); + jobject e = env->CallStaticObjectMethod + (ourEnumClass, getEnumValueOfMethod(env), ourEnumClass, sn); + + env->DeleteLocalRef(sn); + return e; } jint @@ -252,9 +255,10 @@ break; } + jstring sn = env->NewStringUTF(stype); jobject sampleType = env->CallStaticObjectMethod - (sampleTypeClass, getEnumValueOfMethod(env), - sampleTypeClass, env->NewStringUTF(stype));//!!! string leaked! + (sampleTypeClass, getEnumValueOfMethod(env), sampleTypeClass, sn); + env->DeleteLocalRef(sn); setObjectField(env, desc, "sampleType", "Lorg/vamp_plugins/OutputDescriptor$SampleType;",