Bit of code-modernization cleanup in BroString

- Convert single-bit bit fields into bools
- Use bool for a number of function arguments that were previously ints
- Use delegated constructors to reduce repetition in the other constructors
This commit is contained in:
Tim Wojtulewicz 2020-01-02 13:20:51 -07:00
parent a463c5763f
commit 9d38419e8a
2 changed files with 28 additions and 40 deletions

View file

@ -25,52 +25,40 @@ const int BroString::BRO_STRING_LITERAL;
// arg_final_NUL == 1; when str is a sequence of n bytes, make
// arg_final_NUL == 0.
BroString::BroString(int arg_final_NUL, byte_vec str, int arg_n)
BroString::BroString(bool arg_final_NUL, byte_vec str, int arg_n)
{
b = str;
n = arg_n;
final_NUL = arg_final_NUL;
use_free_to_delete = 0;
use_free_to_delete = false;
}
BroString::BroString(const u_char* str, int arg_n, int add_NUL)
BroString::BroString(const u_char* str, int arg_n, bool add_NUL) : BroString()
{
b = 0;
n = 0;
use_free_to_delete = 0;
Set(str, arg_n, add_NUL);
}
BroString::BroString(const char* str)
BroString::BroString(const char* str) : BroString()
{
b = 0;
n = 0;
use_free_to_delete = 0;
Set(str);
}
BroString::BroString(const string &str)
BroString::BroString(const string &str) : BroString()
{
b = 0;
n = 0;
use_free_to_delete = 0;
Set(str);
}
BroString::BroString(const BroString& bs)
BroString::BroString(const BroString& bs) : BroString()
{
b = 0;
n = 0;
use_free_to_delete = 0;
*this = bs;
}
BroString::BroString()
{
b = 0;
b = nullptr;
n = 0;
final_NUL = 0;
use_free_to_delete = 0;
final_NUL = false;
use_free_to_delete = false;
}
void BroString::Reset()
@ -80,10 +68,10 @@ void BroString::Reset()
else
delete [] b;
b = 0;
b = nullptr;
n = 0;
final_NUL = 0;
use_free_to_delete = 0;
final_NUL = false;
use_free_to_delete = false;
}
const BroString& BroString::operator=(const BroString &bs)
@ -95,8 +83,8 @@ const BroString& BroString::operator=(const BroString &bs)
memcpy(b, bs.b, n);
b[n] = '\0';
final_NUL = 1;
use_free_to_delete = 0;
final_NUL = true;
use_free_to_delete = false;
return *this;
}
@ -122,7 +110,7 @@ void BroString::Adopt(byte_vec bytes, int len)
n = len - final_NUL;
}
void BroString::Set(const u_char* str, int len, int add_NUL)
void BroString::Set(const u_char* str, int len, bool add_NUL)
{
Reset();
@ -134,7 +122,7 @@ void BroString::Set(const u_char* str, int len, int add_NUL)
if ( add_NUL )
b[n] = 0;
use_free_to_delete = 0;
use_free_to_delete = false;
}
void BroString::Set(const char* str)
@ -144,8 +132,8 @@ void BroString::Set(const char* str)
n = strlen(str);
b = new u_char[n+1];
memcpy(b, str, n+1);
final_NUL = 1;
use_free_to_delete = 0;
final_NUL = true;
use_free_to_delete = false;
}
void BroString::Set(const string& str)
@ -155,8 +143,8 @@ void BroString::Set(const string& str)
n = str.size();
b = new u_char[n+1];
memcpy(b, str.c_str(), n+1);
final_NUL = 1;
use_free_to_delete = 0;
final_NUL = true;
use_free_to_delete = false;
}
void BroString::Set(const BroString& str)
@ -307,7 +295,7 @@ BroString::Vec* BroString::Split(const BroString::IdxVec& indices) const
{
unsigned int i;
if ( indices.size() == 0 )
if ( indices.empty() )
return 0;
// Copy input, ensuring space for "0":
@ -453,7 +441,7 @@ BroString* concatenate(std::vector<data_chunk_t>& v)
*b = '\0';
return new BroString(1, (byte_vec) data, len);
return new BroString(true, (byte_vec) data, len);
}
BroString* concatenate(BroString::CVec& v)
@ -474,7 +462,7 @@ BroString* concatenate(BroString::CVec& v)
}
*b = '\0';
return new BroString(1, (byte_vec) data, len);
return new BroString(true, (byte_vec) data, len);
}
BroString* concatenate(BroString::Vec& v)