summaryrefslogtreecommitdiffstats
path: root/chrome/browser/bookmarks/bookmark_model.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-10 02:16:05 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-10 02:16:05 +0000
commit8c4a580917a5f379b4a9e67145ed78a347151181 (patch)
tree4660d34698629c72ba45dba260d4c970864f6c49 /chrome/browser/bookmarks/bookmark_model.cc
parent60142d98de42fad6bc63b37b063d565a3ab85f0b (diff)
downloadchromium_src-8c4a580917a5f379b4a9e67145ed78a347151181.zip
chromium_src-8c4a580917a5f379b4a9e67145ed78a347151181.tar.gz
chromium_src-8c4a580917a5f379b4a9e67145ed78a347151181.tar.bz2
Bring a bunch more headers into the non-Windows build:
- history - autocomplete - bookmarks These were all reviewed separately but turned out to be interdependent. :~( Review URL: http://codereview.chromium.org/21170 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9444 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_model.cc')
-rw-r--r--chrome/browser/bookmarks/bookmark_model.cc30
1 files changed, 23 insertions, 7 deletions
diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc
index 4280808..cb53639 100644
--- a/chrome/browser/bookmarks/bookmark_model.cc
+++ b/chrome/browser/bookmarks/bookmark_model.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/bookmarks/bookmark_model.h"
#include "base/gfx/png_decoder.h"
+#include "build/build_config.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/bookmarks/bookmark_storage.h"
#include "chrome/browser/profile.h"
@@ -61,13 +62,15 @@ void BookmarkNode::Reset(const history::StarredEntry& entry) {
BookmarkModel::BookmarkModel(Profile* profile)
: profile_(profile),
loaded_(false),
-#pragma warning(suppress: 4355) // Okay to pass "this" here.
- root_(this, GURL()),
+ ALLOW_THIS_IN_INITIALIZER_LIST(root_(this, GURL())),
bookmark_bar_node_(NULL),
other_node_(NULL),
observers_(ObserverList<BookmarkModelObserver>::NOTIFY_EXISTING_ONLY),
- waiting_for_history_load_(false),
- loaded_signal_(CreateEvent(NULL, TRUE, FALSE, NULL)) {
+ waiting_for_history_load_(false)
+#if defined(OS_WIN)
+ , loaded_signal_(CreateEvent(NULL, TRUE, FALSE, NULL))
+#endif
+{
// Create the bookmark bar and other bookmarks folders. These always exist.
CreateBookmarkNode();
CreateOtherBookmarksNode();
@@ -437,8 +440,12 @@ void BookmarkModel::DoneLoading() {
loaded_ = true;
+#if defined(OS_WIN)
if (loaded_signal_.Get())
SetEvent(loaded_signal_.Get());
+#else
+ NOTIMPLEMENTED();
+#endif
// Notify our direct observers.
@@ -467,10 +474,15 @@ void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) {
// allow duplicates we need to remove any entries that are still bookmarked.
for (std::set<GURL>::iterator i = details.changed_urls.begin();
i != details.changed_urls.end(); ){
- if (IsBookmarkedNoLock(*i))
- i = details.changed_urls.erase(i);
- else
+ if (IsBookmarkedNoLock(*i)) {
+ // When we erase the iterator pointing at the erasee is
+ // invalidated, so using i++ here within the "erase" call is
+ // important as it advances the iterator before passing the
+ // old value through to erase.
+ details.changed_urls.erase(i++);
+ } else {
++i;
+ }
}
}
@@ -522,8 +534,12 @@ BookmarkNode* BookmarkModel::AddNode(BookmarkNode* parent,
}
void BookmarkModel::BlockTillLoaded() {
+#if defined(OS_WIN)
if (loaded_signal_.Get())
WaitForSingleObject(loaded_signal_.Get(), INFINITE);
+#else
+ NOTIMPLEMENTED();
+#endif
}
BookmarkNode* BookmarkModel::GetNodeByID(BookmarkNode* node, int id) {