mirror of https://github.com/odrling/Aegisub
Reduce how long the CSRI lock is held
Originally committed to SVN as r6699.
This commit is contained in:
parent
24fde36e7f
commit
0f9289dc0f
|
@ -83,12 +83,11 @@ CSRISubtitlesProvider::~CSRISubtitlesProvider() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) {
|
void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) {
|
||||||
wxMutexLocker lock(csri_mutex);
|
|
||||||
|
|
||||||
// Open from memory
|
|
||||||
if (can_open_mem) {
|
if (can_open_mem) {
|
||||||
std::vector<char> data;
|
std::vector<char> data;
|
||||||
subs->SaveMemory(data);
|
subs->SaveMemory(data);
|
||||||
|
|
||||||
|
wxMutexLocker lock(csri_mutex);
|
||||||
instance = csri_open_mem(renderer, &data[0], data.size(), NULL);
|
instance = csri_open_mem(renderer, &data[0], data.size(), NULL);
|
||||||
}
|
}
|
||||||
// Open from disk
|
// Open from disk
|
||||||
|
@ -99,6 +98,8 @@ void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) {
|
||||||
tempfile += ".ass";
|
tempfile += ".ass";
|
||||||
}
|
}
|
||||||
subs->Save(tempfile, false, false, wxSTRING_ENCODING);
|
subs->Save(tempfile, false, false, wxSTRING_ENCODING);
|
||||||
|
|
||||||
|
wxMutexLocker lock(csri_mutex);
|
||||||
instance = csri_open_file(renderer, tempfile.utf8_str(), NULL);
|
instance = csri_open_file(renderer, tempfile.utf8_str(), NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue