Merge "Remove mutex from file seselector" into twrp2.4
diff --git a/gui/fileselector.cpp b/gui/fileselector.cpp
index 37eeed2..8b58044 100644
--- a/gui/fileselector.cpp
+++ b/gui/fileselector.cpp
@@ -391,20 +391,14 @@
}
// Update the file list if needed
- pthread_mutex_lock(&updateFileListmutex);
if (updateFileList) {
- pthread_mutex_unlock(&updateFileListmutex);
string value;
DataManager::GetValue(mPathVar, value);
if (GetFileList(value) == 0) {
- pthread_mutex_lock(&updateFileListmutex);
updateFileList = false;
- pthread_mutex_unlock(&updateFileListmutex);
} else {
return 0;
}
- } else {
- pthread_mutex_unlock(&updateFileListmutex);
}
// This tells us how many lines we can actually render
@@ -562,11 +556,9 @@
}
// If a change came in during the render then we need to do another redraw so leave mUpdate alone if updateFileList is true.
- pthread_mutex_lock(&updateFileListmutex);
if (!updateFileList) {
mUpdate = 0;
}
- pthread_mutex_unlock(&updateFileListmutex);
return 0;
}
@@ -846,6 +838,10 @@
int GUIFileSelector::NotifyVarChange(std::string varName, std::string value)
{
+ if (varName.empty()) {
+ // Always clear the data variable so we know to use it
+ DataManager::SetValue(mVariable, "");
+ }
if (!mHeaderIsStatic) {
std::string newValue = gui_parse_text(mHeaderText);
if (mLastValue != newValue) {
@@ -861,9 +857,7 @@
if (varName == mSortVariable) {
DataManager::GetValue(mSortVariable, mSortOrder);
}
- pthread_mutex_lock(&updateFileListmutex);
updateFileList = true;
- pthread_mutex_unlock(&updateFileListmutex);
mStart = 0;
scrollingY = 0;
scrollingSpeed = 0;
@@ -1004,9 +998,7 @@
{
if (inFocus)
{
- pthread_mutex_lock(&updateFileListmutex);
updateFileList = true;
- pthread_mutex_unlock(&updateFileListmutex);
scrollingY = 0;
scrollingSpeed = 0;
mUpdate = 1;
diff --git a/gui/objects.hpp b/gui/objects.hpp
index 047b66b..3a39fe5 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -496,7 +496,6 @@
COLOR mFontHighlightColor;
int startSelection;
bool updateFileList;
- pthread_mutex_t updateFileListmutex;
};
class GUIListBox : public RenderObject, public ActionObject