summaryrefslogtreecommitdiffstats
path: root/content/browser/indexed_db
diff options
context:
space:
mode:
authorbratell <bratell@opera.com>2015-02-19 11:12:44 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-19 19:14:02 +0000
commit1027bb83a75224af86c8ab8c3526a1dba5fc7243 (patch)
tree7d78afde35f8c0a4b5edfa37bcc96f5b603c59bf /content/browser/indexed_db
parent4846e390ad4a0462057dd072fafeea41ea9e5bc6 (diff)
downloadchromium_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')
-rw-r--r--content/browser/indexed_db/indexed_db_backing_store.cc8
-rw-r--r--content/browser/indexed_db/indexed_db_backing_store.h5
-rw-r--r--content/browser/indexed_db/indexed_db_blob_info.cc7
-rw-r--r--content/browser/indexed_db/indexed_db_blob_info.h2
-rw-r--r--content/browser/indexed_db/indexed_db_metadata.cc42
-rw-r--r--content/browser/indexed_db/indexed_db_metadata.h21
-rw-r--r--content/browser/indexed_db/indexed_db_value.cc7
-rw-r--r--content/browser/indexed_db/indexed_db_value.h2
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);