diff options
author | bratell <bratell@opera.com> | 2015-02-19 11:12:44 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-19 19:14:02 +0000 |
commit | 1027bb83a75224af86c8ab8c3526a1dba5fc7243 (patch) | |
tree | 7d78afde35f8c0a4b5edfa37bcc96f5b603c59bf /content/browser/indexed_db | |
parent | 4846e390ad4a0462057dd072fafeea41ea9e5bc6 (diff) | |
download | chromium_src-1027bb83a75224af86c8ab8c3526a1dba5fc7243.zip chromium_src-1027bb83a75224af86c8ab8c3526a1dba5fc7243.tar.gz chromium_src-1027bb83a75224af86c8ab8c3526a1dba5fc7243.tar.bz2 |
Avoid large inlined automatic methods in IndexedDB code.
The chromium base policy is to not inline code but since automatically
generated code and templates easily become inlined it can happen
anyway. This explicitly outlines destructors, copy constructors and
assignment operators in the IndexedDB code for a win of
11 KB of x64 machine code. Most of it (maybe 8 KB) from IndexedDBKey.
clang x64 numbers:
Total change: -11795 bytes
==========================
42 added, totalling +3270 bytes across 13 sources
25 removed, totalling -5883 bytes across 14 sources
9 grown, for a net change of +1556 bytes (7936 bytes before, 9492 bytes after) across 6 sources
60 shrunk, for a net change of -10738 bytes (54277 bytes before, 43539 bytes after) across 17 sources
BUG=
Review URL: https://codereview.chromium.org/933823002
Cr-Commit-Position: refs/heads/master@{#317090}
Diffstat (limited to 'content/browser/indexed_db')
8 files changed, 79 insertions, 15 deletions
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc index 51f52c3..4ae9ed4 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.cc +++ b/content/browser/indexed_db/indexed_db_backing_store.cc @@ -4402,4 +4402,12 @@ IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( last_modified_(last_modified) { } +IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( + const WriteDescriptor& other) = default; +IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = + default; +IndexedDBBackingStore::Transaction::WriteDescriptor& + IndexedDBBackingStore::Transaction::WriteDescriptor:: + operator=(const WriteDescriptor& other) = default; + } // namespace content diff --git a/content/browser/indexed_db/indexed_db_backing_store.h b/content/browser/indexed_db/indexed_db_backing_store.h index 7c16b4e..d7e5dbc 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.h +++ b/content/browser/indexed_db/indexed_db_backing_store.h @@ -167,7 +167,7 @@ class CONTENT_EXPORT IndexedDBBackingStore typedef std::vector<std::pair<BlobEntryKey, std::string> > BlobEntryKeyValuePairVec; - class WriteDescriptor { + class CONTENT_EXPORT WriteDescriptor { public: WriteDescriptor(const GURL& url, int64_t key, @@ -177,6 +177,9 @@ class CONTENT_EXPORT IndexedDBBackingStore int64_t key, int64_t size, base::Time last_modified); + WriteDescriptor(const WriteDescriptor& other); + ~WriteDescriptor(); + WriteDescriptor& operator=(const WriteDescriptor& other); bool is_file() const { return is_file_; } const GURL& url() const { diff --git a/content/browser/indexed_db/indexed_db_blob_info.cc b/content/browser/indexed_db/indexed_db_blob_info.cc index e4b1a3a..d61de75 100644 --- a/content/browser/indexed_db/indexed_db_blob_info.cc +++ b/content/browser/indexed_db/indexed_db_blob_info.cc @@ -49,7 +49,12 @@ IndexedDBBlobInfo::IndexedDBBlobInfo(int64 key, : is_file_(true), type_(type), size_(-1), file_name_(file_name), key_(key) { } -IndexedDBBlobInfo::~IndexedDBBlobInfo() {} +IndexedDBBlobInfo::IndexedDBBlobInfo(const IndexedDBBlobInfo& other) = default; + +IndexedDBBlobInfo::~IndexedDBBlobInfo() = default; + +IndexedDBBlobInfo& IndexedDBBlobInfo::operator=( + const IndexedDBBlobInfo& other) = default; void IndexedDBBlobInfo::set_size(int64 size) { DCHECK_EQ(-1, size_); diff --git a/content/browser/indexed_db/indexed_db_blob_info.h b/content/browser/indexed_db/indexed_db_blob_info.h index 02d039d..60da707 100644 --- a/content/browser/indexed_db/indexed_db_blob_info.h +++ b/content/browser/indexed_db/indexed_db_blob_info.h @@ -33,7 +33,9 @@ class CONTENT_EXPORT IndexedDBBlobInfo { const base::string16& type, const base::string16& file_name); + IndexedDBBlobInfo(const IndexedDBBlobInfo& other); ~IndexedDBBlobInfo(); + IndexedDBBlobInfo& operator=(const IndexedDBBlobInfo& other); bool is_file() const { return is_file_; } const std::string& uuid() const { return uuid_; } diff --git a/content/browser/indexed_db/indexed_db_metadata.cc b/content/browser/indexed_db/indexed_db_metadata.cc index 47b7219..92c4c31 100644 --- a/content/browser/indexed_db/indexed_db_metadata.cc +++ b/content/browser/indexed_db/indexed_db_metadata.cc @@ -6,6 +6,28 @@ namespace content { +IndexedDBIndexMetadata::IndexedDBIndexMetadata() = default; + +IndexedDBIndexMetadata::IndexedDBIndexMetadata(const base::string16& name, + int64 id, + const IndexedDBKeyPath& key_path, + bool unique, + bool multi_entry) + : name(name), + id(id), + key_path(key_path), + unique(unique), + multi_entry(multi_entry) { +} + +IndexedDBIndexMetadata::IndexedDBIndexMetadata( + const IndexedDBIndexMetadata& other) = default; + +IndexedDBIndexMetadata::~IndexedDBIndexMetadata() = default; + +IndexedDBIndexMetadata& IndexedDBIndexMetadata::operator=( + const IndexedDBIndexMetadata& other) = default; + IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata( const base::string16& name, int64 id, @@ -18,11 +40,19 @@ IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata( auto_increment(auto_increment), max_index_id(max_index_id) {} -IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata() {} -IndexedDBObjectStoreMetadata::~IndexedDBObjectStoreMetadata() {} +IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata() = default; + +IndexedDBObjectStoreMetadata::IndexedDBObjectStoreMetadata( + const IndexedDBObjectStoreMetadata& other) = default; + +IndexedDBObjectStoreMetadata::~IndexedDBObjectStoreMetadata() = default; + +IndexedDBObjectStoreMetadata& IndexedDBObjectStoreMetadata::operator=( + const IndexedDBObjectStoreMetadata& other) = default; IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata() : int_version(NO_INT_VERSION) {} + IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata( const base::string16& name, int64 id, @@ -35,6 +65,12 @@ IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata( int_version(int_version), max_object_store_id(max_object_store_id) {} -IndexedDBDatabaseMetadata::~IndexedDBDatabaseMetadata() {} +IndexedDBDatabaseMetadata::IndexedDBDatabaseMetadata( + const IndexedDBDatabaseMetadata& other) = default; + +IndexedDBDatabaseMetadata::~IndexedDBDatabaseMetadata() = default; + +IndexedDBDatabaseMetadata& IndexedDBDatabaseMetadata::operator=( + IndexedDBDatabaseMetadata& other) = default; } // namespace content diff --git a/content/browser/indexed_db/indexed_db_metadata.h b/content/browser/indexed_db/indexed_db_metadata.h index a597616..e294868 100644 --- a/content/browser/indexed_db/indexed_db_metadata.h +++ b/content/browser/indexed_db/indexed_db_metadata.h @@ -13,20 +13,19 @@ namespace content { -struct IndexedDBIndexMetadata { +struct CONTENT_EXPORT IndexedDBIndexMetadata { static const int64 kInvalidId = -1; - IndexedDBIndexMetadata() {} + IndexedDBIndexMetadata(); IndexedDBIndexMetadata(const base::string16& name, int64 id, const IndexedDBKeyPath& key_path, bool unique, - bool multi_entry) - : name(name), - id(id), - key_path(key_path), - unique(unique), - multi_entry(multi_entry) {} + bool multi_entry); + IndexedDBIndexMetadata(const IndexedDBIndexMetadata& other); + ~IndexedDBIndexMetadata(); + IndexedDBIndexMetadata& operator=(const IndexedDBIndexMetadata& other); + base::string16 name; int64 id; IndexedDBKeyPath key_path; @@ -45,7 +44,11 @@ struct CONTENT_EXPORT IndexedDBObjectStoreMetadata { const IndexedDBKeyPath& key_path, bool auto_increment, int64 max_index_id); + IndexedDBObjectStoreMetadata(const IndexedDBObjectStoreMetadata& other); ~IndexedDBObjectStoreMetadata(); + IndexedDBObjectStoreMetadata& operator=( + const IndexedDBObjectStoreMetadata& other); + base::string16 name; int64 id; IndexedDBKeyPath key_path; @@ -70,7 +73,9 @@ struct CONTENT_EXPORT IndexedDBDatabaseMetadata { const base::string16& version, int64 int_version, int64 max_object_store_id); + IndexedDBDatabaseMetadata(const IndexedDBDatabaseMetadata& other); ~IndexedDBDatabaseMetadata(); + IndexedDBDatabaseMetadata& operator=(IndexedDBDatabaseMetadata& other); base::string16 name; int64 id; diff --git a/content/browser/indexed_db/indexed_db_value.cc b/content/browser/indexed_db/indexed_db_value.cc index 2843521..e8be18a 100644 --- a/content/browser/indexed_db/indexed_db_value.cc +++ b/content/browser/indexed_db/indexed_db_value.cc @@ -8,13 +8,16 @@ namespace content { -IndexedDBValue::IndexedDBValue() {} +IndexedDBValue::IndexedDBValue() = default; IndexedDBValue::IndexedDBValue( const std::string& input_bits, const std::vector<IndexedDBBlobInfo>& input_blob_info) : bits(input_bits), blob_info(input_blob_info) { DCHECK(!input_blob_info.size() || input_bits.size()); } -IndexedDBValue::~IndexedDBValue() {} +IndexedDBValue::IndexedDBValue(const IndexedDBValue& other) = default; +IndexedDBValue::~IndexedDBValue() = default; +IndexedDBValue& IndexedDBValue::operator=(const IndexedDBValue& other) = + default; } // namespace content diff --git a/content/browser/indexed_db/indexed_db_value.h b/content/browser/indexed_db/indexed_db_value.h index d313038..7b2377a 100644 --- a/content/browser/indexed_db/indexed_db_value.h +++ b/content/browser/indexed_db/indexed_db_value.h @@ -18,7 +18,9 @@ struct CONTENT_EXPORT IndexedDBValue { IndexedDBValue(); IndexedDBValue(const std::string& input_bits, const std::vector<IndexedDBBlobInfo>& input_blob_info); + IndexedDBValue(const IndexedDBValue& other); ~IndexedDBValue(); + IndexedDBValue& operator=(const IndexedDBValue& other); void swap(IndexedDBValue& value) { bits.swap(value.bits); |