| Index: chrome/browser/sync/syncable/syncable.cc
|
| diff --git a/chrome/browser/sync/syncable/syncable.cc b/chrome/browser/sync/syncable/syncable.cc
|
| index 17176fd50f70eb8e55cc1f33975e8ddacc714970..3e93d4092eb011a4d6911a69558d77e5506a7e21 100644
|
| --- a/chrome/browser/sync/syncable/syncable.cc
|
| +++ b/chrome/browser/sync/syncable/syncable.cc
|
| @@ -167,7 +167,6 @@ Directory::Kernel::Kernel(const FilePath& db_path,
|
| ids_index(new Directory::IdsIndex),
|
| parent_id_child_index(new Directory::ParentIdChildIndex),
|
| client_tag_index(new Directory::ClientTagIndex),
|
| - extended_attributes(new ExtendedAttributes),
|
| unapplied_update_metahandles(new MetahandleSet),
|
| unsynced_metahandles(new MetahandleSet),
|
| dirty_metahandles(new MetahandleSet),
|
| @@ -198,7 +197,6 @@ Directory::Kernel::~Kernel() {
|
| delete unsynced_metahandles;
|
| delete unapplied_update_metahandles;
|
| delete dirty_metahandles;
|
| - delete extended_attributes;
|
| delete parent_id_child_index;
|
| delete client_tag_index;
|
| delete ids_index;
|
| @@ -254,14 +252,12 @@ DirOpenResult Directory::OpenImpl(const FilePath& file_path,
|
| // Temporary indices before kernel_ initialized in case Load fails. We 0(1)
|
| // swap these later.
|
| MetahandlesIndex metas_bucket;
|
| - ExtendedAttributes xattrs_bucket;
|
| - DirOpenResult result = store_->Load(&metas_bucket, &xattrs_bucket, &info);
|
| + DirOpenResult result = store_->Load(&metas_bucket, &info);
|
| if (OPENED != result)
|
| return result;
|
|
|
| kernel_ = new Kernel(db_path, name, info);
|
| kernel_->metahandles_index->swap(metas_bucket);
|
| - kernel_->extended_attributes->swap(xattrs_bucket);
|
| InitializeIndices();
|
| return OPENED;
|
| }
|
| @@ -526,15 +522,6 @@ void Directory::TakeSnapshotForSaveChanges(SaveChangesSnapshot* snapshot) {
|
| }
|
| ClearDirtyMetahandles();
|
|
|
| - // Do the same for extended attributes.
|
| - for (ExtendedAttributes::iterator i = kernel_->extended_attributes->begin();
|
| - i != kernel_->extended_attributes->end(); ++i) {
|
| - if (!i->second.dirty)
|
| - continue;
|
| - snapshot->dirty_xattrs[i->first] = i->second;
|
| - i->second.dirty = false;
|
| - }
|
| -
|
| // Fill kernel_info_status and kernel_info.
|
| snapshot->kernel_info = kernel_->persisted_info;
|
| // To avoid duplicates when the process crashes, we record the next_id to be
|
| @@ -595,19 +582,6 @@ void Directory::VacuumAfterSaveChanges(const SaveChangesSnapshot& snapshot) {
|
| delete entry;
|
| }
|
| }
|
| -
|
| - ExtendedAttributes::const_iterator i = snapshot.dirty_xattrs.begin();
|
| - while (i != snapshot.dirty_xattrs.end()) {
|
| - ExtendedAttributeKey key(i->first.metahandle, i->first.key);
|
| - ExtendedAttributes::iterator found =
|
| - kernel_->extended_attributes->find(key);
|
| - if (found == kernel_->extended_attributes->end() ||
|
| - found->second.dirty || !i->second.is_deleted) {
|
| - ++i;
|
| - } else {
|
| - kernel_->extended_attributes->erase(found);
|
| - }
|
| - }
|
| }
|
|
|
| void Directory::PurgeEntriesWithTypeIn(const std::set<ModelType>& types) {
|
| @@ -666,15 +640,6 @@ void Directory::HandleSaveChangesFailure(const SaveChangesSnapshot& snapshot) {
|
| (*found)->mark_dirty(kernel_->dirty_metahandles);
|
| }
|
| }
|
| -
|
| - for (ExtendedAttributes::const_iterator i = snapshot.dirty_xattrs.begin();
|
| - i != snapshot.dirty_xattrs.end(); ++i) {
|
| - ExtendedAttributeKey key(i->first.metahandle, i->first.key);
|
| - ExtendedAttributes::iterator found =
|
| - kernel_->extended_attributes->find(key);
|
| - if (found != kernel_->extended_attributes->end())
|
| - found->second.dirty = true;
|
| - }
|
| }
|
|
|
| int64 Directory::last_download_timestamp(ModelType model_type) const {
|
| @@ -752,46 +717,6 @@ void Directory::GetUnsyncedMetaHandles(BaseTransaction* trans,
|
| kernel_->unsynced_metahandles->end(), back_inserter(*result));
|
| }
|
|
|
| -void Directory::GetAllExtendedAttributes(BaseTransaction* trans,
|
| - int64 metahandle,
|
| - std::set<ExtendedAttribute>* result) {
|
| - AttributeKeySet keys;
|
| - GetExtendedAttributesList(trans, metahandle, &keys);
|
| - AttributeKeySet::iterator iter;
|
| - for (iter = keys.begin(); iter != keys.end(); ++iter) {
|
| - ExtendedAttributeKey key(metahandle, *iter);
|
| - ExtendedAttribute extended_attribute(trans, GET_BY_HANDLE, key);
|
| - CHECK(extended_attribute.good());
|
| - result->insert(extended_attribute);
|
| - }
|
| -}
|
| -
|
| -void Directory::GetExtendedAttributesList(BaseTransaction* trans,
|
| - int64 metahandle, AttributeKeySet* result) {
|
| - ExtendedAttributes::iterator iter;
|
| - for (iter = kernel_->extended_attributes->begin();
|
| - iter != kernel_->extended_attributes->end(); ++iter) {
|
| - if (iter->first.metahandle == metahandle) {
|
| - if (!iter->second.is_deleted)
|
| - result->insert(iter->first.key);
|
| - }
|
| - }
|
| -}
|
| -
|
| -void Directory::DeleteAllExtendedAttributes(WriteTransaction* trans,
|
| - int64 metahandle) {
|
| - AttributeKeySet keys;
|
| - GetExtendedAttributesList(trans, metahandle, &keys);
|
| - AttributeKeySet::iterator iter;
|
| - for (iter = keys.begin(); iter != keys.end(); ++iter) {
|
| - ExtendedAttributeKey key(metahandle, *iter);
|
| - MutableExtendedAttribute attribute(trans, GET_BY_HANDLE, key);
|
| - // This flags the attribute for deletion during SaveChanges. At that time
|
| - // any deleted attributes are purged from disk and memory.
|
| - attribute.delete_attribute();
|
| - }
|
| -}
|
| -
|
| int64 Directory::unsynced_entity_count() const {
|
| ScopedKernelLock lock(this);
|
| return kernel_->unsynced_metahandles->size();
|
| @@ -1096,20 +1021,6 @@ const string& Entry::Get(StringField field) const {
|
| return kernel_->ref(field);
|
| }
|
|
|
| -void Entry::GetAllExtendedAttributes(BaseTransaction* trans,
|
| - std::set<ExtendedAttribute> *result) {
|
| - dir()->GetAllExtendedAttributes(trans, kernel_->ref(META_HANDLE), result);
|
| -}
|
| -
|
| -void Entry::GetExtendedAttributesList(BaseTransaction* trans,
|
| - AttributeKeySet* result) {
|
| - dir()->GetExtendedAttributesList(trans, kernel_->ref(META_HANDLE), result);
|
| -}
|
| -
|
| -void Entry::DeleteAllExtendedAttributes(WriteTransaction *trans) {
|
| - dir()->DeleteAllExtendedAttributes(trans, kernel_->ref(META_HANDLE));
|
| -}
|
| -
|
| syncable::ModelType Entry::GetServerModelType() const {
|
| ModelType specifics_type = GetModelTypeFromSpecifics(Get(SERVER_SPECIFICS));
|
| if (specifics_type != UNSPECIFIED)
|
| @@ -1492,41 +1403,6 @@ Id Directory::GetLastChildId(BaseTransaction* trans,
|
| return GetChildWithNullIdField(NEXT_ID, trans, parent_id);
|
| }
|
|
|
| -ExtendedAttribute::ExtendedAttribute(BaseTransaction* trans, GetByHandle,
|
| - const ExtendedAttributeKey& key) {
|
| - Directory::Kernel* const kernel = trans->directory()->kernel_;
|
| - ScopedKernelLock lock(trans->directory());
|
| - Init(trans, kernel, &lock, key);
|
| -}
|
| -
|
| -bool ExtendedAttribute::Init(BaseTransaction* trans,
|
| - Directory::Kernel* const kernel,
|
| - ScopedKernelLock* lock,
|
| - const ExtendedAttributeKey& key) {
|
| - i_ = kernel->extended_attributes->find(key);
|
| - good_ = kernel->extended_attributes->end() != i_;
|
| - return good_;
|
| -}
|
| -
|
| -MutableExtendedAttribute::MutableExtendedAttribute(
|
| - WriteTransaction* trans, GetByHandle,
|
| - const ExtendedAttributeKey& key) :
|
| - ExtendedAttribute(trans, GET_BY_HANDLE, key) {
|
| -}
|
| -
|
| -MutableExtendedAttribute::MutableExtendedAttribute(
|
| - WriteTransaction* trans, Create, const ExtendedAttributeKey& key) {
|
| - Directory::Kernel* const kernel = trans->directory()->kernel_;
|
| - ScopedKernelLock lock(trans->directory());
|
| - if (!Init(trans, kernel, &lock, key)) {
|
| - ExtendedAttributeValue val;
|
| - val.is_deleted = false;
|
| - val.dirty = true;
|
| - i_ = kernel->extended_attributes->insert(std::make_pair(key, val)).first;
|
| - good_ = true;
|
| - }
|
| -}
|
| -
|
| bool IsLegalNewParent(BaseTransaction* trans, const Id& entry_id,
|
| const Id& new_parent_id) {
|
| if (entry_id.IsRoot())
|
| @@ -1543,15 +1419,6 @@ bool IsLegalNewParent(BaseTransaction* trans, const Id& entry_id,
|
| return true;
|
| }
|
|
|
| -const Blob* GetExtendedAttributeValue(const Entry& e,
|
| - const string& attribute_name) {
|
| - ExtendedAttributeKey key(e.Get(META_HANDLE), attribute_name);
|
| - ExtendedAttribute extended_attribute(e.trans(), GET_BY_HANDLE, key);
|
| - if (extended_attribute.good() && !extended_attribute.is_deleted())
|
| - return &extended_attribute.value();
|
| - return NULL;
|
| -}
|
| -
|
| // This function sets only the flags needed to get this entry to sync.
|
| void MarkForSyncing(syncable::MutableEntry* e) {
|
| DCHECK_NE(static_cast<MutableEntry*>(NULL), e);
|
|
|