BIND 10 trac404, updated. f65cb09eef192590929e246311b33aa964c5a1a6 [trac404] Cleanup some getBuffer()s
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Apr 18 10:31:18 UTC 2011
The branch, trac404 has been updated
via f65cb09eef192590929e246311b33aa964c5a1a6 (commit)
via cf05a54b3c950aef906e577be39d792a17e53796 (commit)
from 6e2078ecc6e3f91676631b3b3f9c4be7b5584853 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f65cb09eef192590929e246311b33aa964c5a1a6
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Mon Apr 18 12:30:24 2011 +0200
[trac404] Cleanup some getBuffer()s
They are not needed on many places, so remove them.
commit cf05a54b3c950aef906e577be39d792a17e53796
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date: Mon Apr 18 12:22:50 2011 +0200
[trac404] Spec size methods
One renamed to be more consistent to getFieldSpecDataSize(), other added
(getFieldSpecCount()).
-----------------------------------------------------------------------
Summary of changes:
src/lib/dns/benchmarks/rdatarender_bench.cc | 2 +-
src/lib/dns/messagerenderer.cc | 2 +-
src/lib/dns/rdatafields.cc | 12 ++++++------
src/lib/dns/rdatafields.h | 9 ++++++++-
src/lib/dns/tests/rdatafields_unittest.cc | 20 +++++++++++++-------
5 files changed, 29 insertions(+), 16 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/dns/benchmarks/rdatarender_bench.cc b/src/lib/dns/benchmarks/rdatarender_bench.cc
index 9dd2ba1..a53f4dd 100644
--- a/src/lib/dns/benchmarks/rdatarender_bench.cc
+++ b/src/lib/dns/benchmarks/rdatarender_bench.cc
@@ -67,7 +67,7 @@ public:
RdataFieldsStore(ConstRdataPtr rdata) {
const RdataFields fields(*rdata);
- spec_size_ = fields.getFieldDataSize();
+ spec_size_ = fields.getFieldSpecDataSize();
spec_store_.resize(spec_size_);
void* cp_spec = &spec_store_[0];
memcpy(cp_spec, fields.getFieldSpecData(), spec_store_.size());
diff --git a/src/lib/dns/messagerenderer.cc b/src/lib/dns/messagerenderer.cc
index de6859c..82ecace 100644
--- a/src/lib/dns/messagerenderer.cc
+++ b/src/lib/dns/messagerenderer.cc
@@ -244,7 +244,7 @@ MessageRenderer::writeName(const Name& name, const bool compress) {
}
// Record the current offset before extending the buffer.
- const size_t offset = getBuffer().getLength();
+ const size_t offset = getLength();
// Write uncompress part...
writeData(impl_->nbuffer_.getData(),
compress ? i : impl_->nbuffer_.getLength());
diff --git a/src/lib/dns/rdatafields.cc b/src/lib/dns/rdatafields.cc
index c33b91e..356f80a 100644
--- a/src/lib/dns/rdatafields.cc
+++ b/src/lib/dns/rdatafields.cc
@@ -74,8 +74,6 @@ public:
mode_(CASE_INSENSITIVE), last_data_pos_(0)
{}
virtual ~RdataFieldComposer() {}
- virtual const void* getData() const { return (getBuffer().getData()); }
- virtual size_t getLength() const { return (getBuffer().getLength()); }
virtual bool isTruncated() const { return (truncated_); }
virtual size_t getLengthLimit() const { return (length_limit_); }
virtual CompressMode getCompressMode() const { return (mode_); }
@@ -87,10 +85,12 @@ public:
const RdataFields::Type field_type =
compress ? RdataFields::COMPRESSIBLE_NAME :
RdataFields::INCOMPRESSIBLE_NAME;
+ // TODO: When we get rid of need for getBuffer, we can output the name
+ // to a buffer and then write the buffer inside
name.toWire(getBuffer());
fields_.push_back(RdataFields::FieldSpec(field_type,
name.getLength()));
- last_data_pos_ = getBuffer().getLength();
+ last_data_pos_ = getLength();
}
virtual void clear() {
@@ -110,7 +110,7 @@ public:
size_t last_data_pos_;
void extendData() {
// No news, return to work
- if (getBuffer().getLength() == last_data_pos_) {
+ if (getLength() == last_data_pos_) {
return;
}
// The new bytes are just ordinary uninteresting data
@@ -118,8 +118,8 @@ public:
fields_.push_back(RdataFields::FieldSpec(RdataFields::DATA, 0));
}
// We added this much data from last time
- fields_.back().len += getBuffer().getLength() - last_data_pos_;
- last_data_pos_ = getBuffer().getLength();
+ fields_.back().len += getLength() - last_data_pos_;
+ last_data_pos_ = getLength();
}
};
diff --git a/src/lib/dns/rdatafields.h b/src/lib/dns/rdatafields.h
index f2e407b..4c3fe83 100644
--- a/src/lib/dns/rdatafields.h
+++ b/src/lib/dns/rdatafields.h
@@ -326,9 +326,16 @@ public:
/// getFieldSpecData() will occupy.
///
/// This method never throws an exception.
- unsigned int getFieldDataSize() const { return (nfields_ *
+ unsigned int getFieldSpecDataSize() const { return (nfields_ *
sizeof *fields_); }
+ /// \brief Return the number of specs fields.
+ ///
+ /// It specifies the range of parameter for getFieldSpec().
+ ///
+ /// This method never throws.
+ unsigned int getFieldCount() const { return (nfields_); }
+
/// \brief Return a pointer to a sequence of \c FieldSpec for the
/// \c RdataFields.
///
diff --git a/src/lib/dns/tests/rdatafields_unittest.cc b/src/lib/dns/tests/rdatafields_unittest.cc
index 5913016..57a2244 100644
--- a/src/lib/dns/tests/rdatafields_unittest.cc
+++ b/src/lib/dns/tests/rdatafields_unittest.cc
@@ -71,7 +71,8 @@ RdataFieldsTest::constructCommonTests(const RdataFields& fields,
EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, expected_data,
expected_data_len, fields.getData(),
fields.getDataLength());
- EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldDataSize());
+ EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldSpecDataSize());
+ EXPECT_EQ(1, fields.getFieldCount());
EXPECT_EQ(RdataFields::DATA, fields.getFieldSpec(0).type);
EXPECT_EQ(4, fields.getFieldSpec(0).len);
@@ -103,7 +104,8 @@ TEST_F(RdataFieldsTest, constructFromParams) {
//
void
RdataFieldsTest::constructCommonTestsNS(const RdataFields& fields) {
- EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldDataSize());
+ EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldSpecDataSize());
+ EXPECT_EQ(1, fields.getFieldCount());
EXPECT_EQ(RdataFields::COMPRESSIBLE_NAME, fields.getFieldSpec(0).type);
EXPECT_EQ(ns_name.getLength(), fields.getFieldSpec(0).len);
@@ -143,7 +145,8 @@ void
RdataFieldsTest::constructCommonTestsTXT(const RdataFields& fields) {
// Since all fields are plain data, they are handled as a single data
// field.
- EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldDataSize());
+ EXPECT_EQ(sizeof(RdataFields::FieldSpec), fields.getFieldSpecDataSize());
+ EXPECT_EQ(1, fields.getFieldCount());
EXPECT_EQ(RdataFields::DATA, fields.getFieldSpec(0).type);
EXPECT_EQ(expected_wire.size(), fields.getFieldSpec(0).len);
@@ -190,7 +193,9 @@ RdataFieldsTest::constructCommonTestsRRSIG(const RdataFields& fields) {
// this is a variable length field. In this test it's a 13-byte field.
// - a variable-length data field for the signature. In this tests
// it's a 15-byte field.
- ASSERT_EQ(3 * sizeof(RdataFields::FieldSpec), fields.getFieldDataSize());
+ EXPECT_EQ(3 * sizeof(RdataFields::FieldSpec),
+ fields.getFieldSpecDataSize());
+ EXPECT_EQ(3, fields.getFieldCount());
EXPECT_EQ(RdataFields::DATA, fields.getFieldSpec(0).type);
EXPECT_EQ(18, fields.getFieldSpec(0).len);
EXPECT_EQ(RdataFields::INCOMPRESSIBLE_NAME, fields.getFieldSpec(1).type);
@@ -256,14 +261,14 @@ TEST_F(RdataFieldsTest, convertRdatatoParams) {
expected_wire.erase(expected_wire.begin(), expected_wire.begin() + 2);
// Copy the data in separate storage
- vector<uint8_t> spec_store(fields.getFieldDataSize());
+ vector<uint8_t> spec_store(fields.getFieldSpecDataSize());
void* cp_spec = &spec_store[0];
memcpy(cp_spec, fields.getFieldSpecData(), spec_store.size());
vector<uint8_t> data_store(fields.getDataLength());
memcpy(&data_store[0], fields.getData(), fields.getDataLength());
// Restore the data in the form of RdataFields
- const RdataFields fields_byparams(cp_spec, fields.getFieldDataSize(),
+ const RdataFields fields_byparams(cp_spec, fields.getFieldSpecDataSize(),
&data_store[0], fields.getDataLength());
// Check it's valid
@@ -275,7 +280,8 @@ TEST_F(RdataFieldsTest, convertRdatatoParams) {
//
void
RdataFieldsTest::constructCommonTestsOPT(const RdataFields& fields) {
- EXPECT_EQ(0, fields.getFieldDataSize());
+ EXPECT_EQ(0, fields.getFieldSpecDataSize());
+ EXPECT_EQ(0, fields.getFieldCount());
EXPECT_EQ(0, fields.getDataLength());
EXPECT_EQ((const uint8_t*) NULL, fields.getData());
fields.toWire(obuffer);
More information about the bind10-changes
mailing list