Merge pull request #905 from rokuz/fixed-deadlock-on-ios

Fixed deadlock on iOS
This commit is contained in:
Vlad Mihaylenko 2015-12-09 13:25:16 +03:00
commit 3fe7c9e0ba
3 changed files with 26 additions and 20 deletions

View file

@ -43,8 +43,10 @@
{
self.isVisible = !self.isVisible;
BookmarkCategory * cat = GetFramework().GetBmCategory(self.index);
BookmarkCategory::Guard guard(*cat);
guard.m_controller.SetIsVisible(self.isVisible);
{
BookmarkCategory::Guard guard(*cat);
guard.m_controller.SetIsVisible(self.isVisible);
}
cat->SaveToKMLFile();
}

View file

@ -327,24 +327,26 @@ using feature::Metadata;
if (!category)
return;
BookmarkCategory::Guard guard(*category);
Bookmark * bookmark = static_cast<Bookmark *>(guard.m_controller.GetUserMarkForEdit(self.bac.second));
if (!bookmark)
return;
if (self.bookmarkColor)
bookmark->SetType(self.bookmarkColor.UTF8String);
if (self.bookmarkDescription)
{
string const description(self.bookmarkDescription.UTF8String);
_isHTMLDescription = strings::IsHTML(description);
bookmark->SetDescription(description);
BookmarkCategory::Guard guard(*category);
Bookmark * bookmark = static_cast<Bookmark *>(guard.m_controller.GetUserMarkForEdit(self.bac.second));
if (!bookmark)
return;
if (self.bookmarkColor)
bookmark->SetType(self.bookmarkColor.UTF8String);
if (self.bookmarkDescription)
{
string const description(self.bookmarkDescription.UTF8String);
_isHTMLDescription = strings::IsHTML(description);
bookmark->SetDescription(description);
}
if (self.bookmarkTitle)
bookmark->SetName(self.bookmarkTitle.UTF8String);
}
if (self.bookmarkTitle)
bookmark->SetName(self.bookmarkTitle.UTF8String);
category->SaveToKMLFile();
}

View file

@ -304,8 +304,10 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageManagerState)
m_userMark.reset(new UserMarkCopy(poi, false));
if (bookmarkCategory)
{
BookmarkCategory::Guard guard(*bookmarkCategory);
guard.m_controller.DeleteUserMark(bookmarkAndCategory.second);
{
BookmarkCategory::Guard guard(*bookmarkCategory);
guard.m_controller.DeleteUserMark(bookmarkAndCategory.second);
}
bookmarkCategory->SaveToKMLFile();
}
[NSNotificationCenter.defaultCenter postNotificationName:kBookmarksChangedNotification