summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-15 19:22:24 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-15 19:22:24 +0000
commit8e1845e1bc61b92e39f21da353fbec0b708e7194 (patch)
tree03812a0c2da378f45f805c9a436e4adb1d0ad793 /net/base
parent7a147fb74d7657f42378947a31d24d197d2345db (diff)
downloadchromium_src-8e1845e1bc61b92e39f21da353fbec0b708e7194.zip
chromium_src-8e1845e1bc61b92e39f21da353fbec0b708e7194.tar.gz
chromium_src-8e1845e1bc61b92e39f21da353fbec0b708e7194.tar.bz2
FBTF: Move code from .h to .cc in net/
Shaves a cumulative 400k off libnet/browser.a BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3432004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59533 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r--net/base/address_list.cc34
-rw-r--r--net/base/address_list.h23
2 files changed, 42 insertions, 15 deletions
diff --git a/net/base/address_list.cc b/net/base/address_list.cc
index 75c30b8..ea1ee1e 100644
--- a/net/base/address_list.cc
+++ b/net/base/address_list.cc
@@ -85,6 +85,34 @@ void SetPortRecursive(struct addrinfo* info, int port) {
} // namespace
+struct AddressList::Data : public base::RefCountedThreadSafe<Data> {
+ Data(struct addrinfo* ai, bool is_system_created);
+ struct addrinfo* head;
+
+ // Indicates which free function to use for |head|.
+ bool is_system_created;
+
+ private:
+ friend class base::RefCountedThreadSafe<Data>;
+
+ ~Data();
+};
+
+AddressList::AddressList() {
+}
+
+AddressList::AddressList(const AddressList& addresslist)
+ : data_(addresslist.data_) {
+}
+
+AddressList::~AddressList() {
+}
+
+AddressList& AddressList::operator=(const AddressList& addresslist) {
+ data_ = addresslist.data_;
+ return *this;
+}
+
AddressList::AddressList(const IPAddressNumber& address, int port,
bool canonicalize_name) {
struct addrinfo* ai = new addrinfo;
@@ -190,6 +218,12 @@ void AddressList::Reset() {
data_ = NULL;
}
+const struct addrinfo* AddressList::head() const {
+ return data_->head;
+}
+
+AddressList::AddressList(Data* data) : data_(data) {}
+
AddressList::Data::Data(struct addrinfo* ai, bool is_system_created)
: head(ai), is_system_created(is_system_created) {
DCHECK(head);
diff --git a/net/base/address_list.h b/net/base/address_list.h
index c333f86..9406a8c 100644
--- a/net/base/address_list.h
+++ b/net/base/address_list.h
@@ -20,13 +20,17 @@ namespace net {
class AddressList {
public:
// Constructs an empty address list.
- AddressList() {}
+ AddressList();
// Constructs an address list for a single IP literal. If
// |canonicalize_name| is true, fill the ai_canonname field with the
// canonicalized IP address.
AddressList(const IPAddressNumber& address, int port, bool canonicalize_name);
+ AddressList(const AddressList& addresslist);
+ ~AddressList();
+ AddressList& operator=(const AddressList& addresslist);
+
// Adopt the given addrinfo list (assumed to have been created by
// the system, e.g. returned by getaddrinfo()) in place of the
// existing one if any. This hands over responsibility for freeing
@@ -68,23 +72,12 @@ class AddressList {
void Reset();
// Get access to the head of the addrinfo list.
- const struct addrinfo* head() const { return data_->head; }
+ const struct addrinfo* head() const;
private:
- struct Data : public base::RefCountedThreadSafe<Data> {
- Data(struct addrinfo* ai, bool is_system_created);
- struct addrinfo* head;
-
- // Indicates which free function to use for |head|.
- bool is_system_created;
-
- private:
- friend class base::RefCountedThreadSafe<Data>;
-
- ~Data();
- };
+ struct Data;
- explicit AddressList(Data* data) : data_(data) {}
+ explicit AddressList(Data* data);
scoped_refptr<Data> data_;
};