// Receive a notification from a child that its status has changed void CCachedDirectory::UpdateChildDirectoryStatus(const CTGitPath& childDir, git_wc_status_kind childStatus) { git_wc_status_kind currentStatus = git_wc_status_none; { AutoLocker lock(m_critSec); currentStatus = m_childDirectories[childDir]; } if ((currentStatus != childStatus)||(!IsOwnStatusValid())) { { AutoLocker lock(m_critSec); m_childDirectories[childDir] = childStatus; } UpdateCurrentStatus(); } }
// Receive a notification from a child that its status has changed void CCachedDirectory::UpdateChildDirectoryStatus(const CTSVNPath& childDir, svn_wc_status_kind childStatus) { CStringA winPath = CUnicodeUtils::GetUTF8 (childDir.GetWinPathString()); svn_wc_status_kind currentStatus = svn_wc_status_none; { AutoLocker lock(m_critSec); auto it = m_childDirectories.find(winPath); if (it == m_childDirectories.end()) return; // this is not a child, or at least not a child connected to the parent currentStatus = it->second; } if ((currentStatus != childStatus)||(!IsOwnStatusValid())) { SetChildStatus(winPath, childStatus); UpdateCurrentStatus(); } }