| Index: chrome/browser/sync/syncable/syncable.h
|
| diff --git a/chrome/browser/sync/syncable/syncable.h b/chrome/browser/sync/syncable/syncable.h
|
| index 4f8875f92ddac46987a8a898a70f446fbde1fc8c..25b23590401c60cbdc4ec85e1d2f3ec857027bb3 100644
|
| --- a/chrome/browser/sync/syncable/syncable.h
|
| +++ b/chrome/browser/sync/syncable/syncable.h
|
| @@ -53,7 +53,6 @@ namespace syncable {
|
| class DirectoryChangeDelegate;
|
| class TransactionObserver;
|
| class Entry;
|
| -
|
| std::ostream& operator<<(std::ostream& s, const Entry& e);
|
|
|
| class DirectoryBackingStore;
|
| @@ -874,6 +873,9 @@ class Directory {
|
| void AddTransactionObserver(TransactionObserver* observer);
|
| void RemoveTransactionObserver(TransactionObserver* observer);
|
|
|
| + void set_unrecoverable_error();
|
| + bool unrecoverable_error() const;
|
| +
|
| protected: // for friends, mainly used by Entry constructors
|
| virtual EntryKernel* GetEntryByHandle(int64 handle);
|
| virtual EntryKernel* GetEntryByHandle(int64 metahandle,
|
| @@ -1152,6 +1154,11 @@ class Directory {
|
| Kernel* kernel_;
|
|
|
| DirectoryBackingStore* store_;
|
| +
|
| + // Keep a copy to check before performing some shutdown operations.
|
| + // Otherwise if the store is corrupted and we perform those operations
|
| + // anyway(as part of sync shutdown) then we will crash there.
|
| + bool unrecoverable_error_;
|
| };
|
|
|
| class ScopedKernelLock {
|
| @@ -1171,6 +1178,8 @@ class BaseTransaction {
|
| inline Directory* directory() const { return directory_; }
|
| inline Id root_id() const { return Id(); }
|
|
|
| + void set_unrecoverable_error();
|
| +
|
| virtual ~BaseTransaction();
|
|
|
| protected:
|
|
|