Browse Source

Copy files vector to prevent race condition

shortcuts
Geoffrey Métais 9 years ago
parent
commit
4d09ee518e
  1. 10
      medialibrary/jni/utils.cpp

10
medialibrary/jni/utils.cpp

@ -16,9 +16,11 @@
jobject
mediaToMediaWrapper(JNIEnv* env, fields *fields, medialibrary::MediaPtr const& mediaPtr)
{
if (mediaPtr == nullptr || mediaPtr->files().empty())
if (mediaPtr == nullptr)
return nullptr;
const std::vector<medialibrary::FilePtr> files = mediaPtr->files();
if (files.empty())
return nullptr;
medialibrary::FilePtr file = mediaPtr->files().at(0);
//TODO get track, audio & spu track numbers
jint type;
switch (mediaPtr->type()) {
@ -50,7 +52,7 @@ mediaToMediaWrapper(JNIEnv* env, fields *fields, medialibrary::MediaPtr const& m
}
}
title = mediaPtr->title().empty() ? NULL : env->NewStringUTF(mediaPtr->title().c_str());
mrl = env->NewStringUTF(file->mrl().c_str());
mrl = env->NewStringUTF(files.at(0)->mrl().c_str());
thumbnail = mediaPtr->thumbnail().empty() ? NULL : env->NewStringUTF(mediaPtr->thumbnail().c_str());
std::vector<medialibrary::VideoTrackPtr> videoTracks = mediaPtr->videoTracks();
bool hasVideoTracks = !videoTracks.empty();
@ -63,7 +65,7 @@ mediaToMediaWrapper(JNIEnv* env, fields *fields, medialibrary::MediaPtr const& m
(jlong) mediaPtr->id(), mrl,(jlong) progress, (jlong) duration, type,
title, artist, genre, album,
albumArtist, width, height, thumbnail,
(jint) -2, (jint) -2, (jint) 0, (jint) 0, (jlong) file->lastModificationDate());
(jint) -2, (jint) -2, (jint) 0, (jint) 0, (jlong) files.at(0)->lastModificationDate());
if (artist != NULL)
env->DeleteLocalRef(artist);
if (genre != NULL)

Loading…
Cancel
Save