jni memory leak fix

This commit is contained in:
kdeng00
2019-11-17 14:45:36 -05:00
parent 9bab2a7798
commit d584c6c3af
3 changed files with 13 additions and 17 deletions
-7
View File
@@ -80,13 +80,6 @@ namespace repository {
std::stringstream buff(data); std::stringstream buff(data);
std::vector<char> vals(data.begin(), data.end()); std::vector<char> vals(data.begin(), data.end());
//vals.reserve(data.size());
//vals.assign(data.begin(), data.end());
/**
vals.assign(std::istream_iterator<unsigned char>(buff),
std::istream_iterator<unsigned char>());
*/
//std::copy(data.begin(), data.end(), &vals);
return vals; return vals;
} }
+12 -2
View File
@@ -79,6 +79,12 @@ jobject songToObj(JNIEnv *env, const model::Song& song)
env->CallVoidMethod(songObj, songYear, year); env->CallVoidMethod(songObj, songYear, year);
env->CallVoidMethod(songObj, songCoverArtId, coverArtId); env->CallVoidMethod(songObj, songCoverArtId, coverArtId);
env->DeleteLocalRef(title);
env->DeleteLocalRef(album);
env->DeleteLocalRef(albumArtist);
env->DeleteLocalRef(artist);
env->DeleteLocalRef(genre);
return songObj; return songObj;
} }
@@ -290,8 +296,12 @@ Java_com_example_mear_repositories_TrackRepository_retrieveSongs(
auto allSongs = retrieveSongs(tk, uri); auto allSongs = retrieveSongs(tk, uri);
jobjectArray songs = env->NewObjectArray(allSongs.size(), songClass, nullptr); jobjectArray songs = env->NewObjectArray(allSongs.size(), songClass, nullptr);
for (auto i = 0; i != allSongs.size(); ++i) { for (auto i = 0; i != allSongs.size(); ++i) {
auto song = songToObj(env, allSongs[i]); try {
env->SetObjectArrayElement(songs, i, song); auto song = songToObj(env, allSongs[i]);
env->SetObjectArrayElement(songs, i, song);
} catch (std::exception& ex) {
auto msg = ex.what();
}
} }
return songs; return songs;
+1 -8
View File
@@ -15,7 +15,7 @@ namespace repository {
if (fullUri.at(fullUri.size()-1) != '/') { if (fullUri.at(fullUri.size()-1) != '/') {
fullUri.append("/"); fullUri.append("/");
} }
//fullUri.append("api/v1/song");
fullUri.append(songRecordEndpoint()); fullUri.append(songRecordEndpoint());
std::vector<model::Song> songs; std::vector<model::Song> songs;
@@ -120,11 +120,4 @@ namespace repository {
((std::string*)e)->append((char*)ptr, size * nmemb); ((std::string*)e)->append((char*)ptr, size * nmemb);
return size * nmemb; return size * nmemb;
} }
/**
constexpr auto SongRepository::songRecordEndpoint() noexcept {
return "api/v1/song";
}
*/
} }