From: Michal 'vorner' Vaner Date: Fri, 24 Aug 2012 10:15:52 +0000 (+0200) Subject: [2096] Minor improvements X-Git-Tag: trac2351_base~114^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5b27cee6f2b2ea3199700f2358ab38655c60e5eb;p=thirdparty%2Fkea.git [2096] Minor improvements * Check for impossible return value and throw in that case. * Call nextInternal directly, to avoid some indirection. This might cause a small performance benefit. --- diff --git a/src/lib/datasrc/memory/rdata_serialization.h b/src/lib/datasrc/memory/rdata_serialization.h index 4f6597183e..085a6e3ab6 100644 --- a/src/lib/datasrc/memory/rdata_serialization.h +++ b/src/lib/datasrc/memory/rdata_serialization.h @@ -322,7 +322,7 @@ public: /// therefore if you already called next() yourself, it does not start /// at the beginning). void iterate() { - while (next() != RRSET_BOUNDARY) {} + while (nextInternal(name_action_, data_action_) != RRSET_BOUNDARY) {} } /// \brief Call next() until the end of current rdata. @@ -334,7 +334,7 @@ public: /// \return If there was Rdata to iterate through. bool iterateRdata() { while (true) { - switch (next()) { + switch (nextInternal(name_action_, data_action_)) { case NO_BOUNDARY: break; case RDATA_BOUNDARY: return (true); case RRSET_BOUNDARY: return (false); @@ -365,7 +365,9 @@ public: bool iterateSingleSig() { while (true) { switch (nextSig()) { - case NO_BOUNDARY: break; + case NO_BOUNDARY: + isc_throw(isc::Unexpected, "NO_BOUNDARY inside an RRSig. " + "Data corruption? Bug inside RdataReader?"); case RDATA_BOUNDARY: return (true); case RRSET_BOUNDARY: return (false); }