HttpHeaders: Small code refactorings

Also check BList::Add() for success when adding a BHttpHeader.
This commit is contained in:
Stephan Aßmus 2014-06-05 22:01:40 +02:00
parent 79852c5551
commit cb1a99c5f0
2 changed files with 18 additions and 20 deletions

View File

@ -76,6 +76,7 @@ public:
private: private:
void _EraseData(); void _EraseData();
bool _AddOrDeleteHeader(BHttpHeader* header);
private: private:
BList fHeaderList; BList fHeaderList;

View File

@ -147,12 +147,11 @@ BHttpHeaders::BHttpHeaders()
} }
BHttpHeaders::BHttpHeaders(const BHttpHeaders& copy) BHttpHeaders::BHttpHeaders(const BHttpHeaders& other)
: :
fHeaderList() fHeaderList()
{ {
for (int32 i = 0; i < copy.CountHeaders(); i++) *this = other;
AddHeader(copy.HeaderAt(i).Name(), copy.HeaderAt(i).Value());
} }
@ -215,7 +214,7 @@ BHttpHeaders::HasHeader(const char* name) const
return i; return i;
} }
return B_ERROR; return -1;
} }
@ -225,28 +224,14 @@ BHttpHeaders::HasHeader(const char* name) const
bool bool
BHttpHeaders::AddHeader(const char* line) BHttpHeaders::AddHeader(const char* line)
{ {
BHttpHeader* heapHeader = new(std::nothrow) BHttpHeader(line); return _AddOrDeleteHeader(new(std::nothrow) BHttpHeader(line));
if (heapHeader != NULL) {
fHeaderList.AddItem(heapHeader);
return true;
}
return false;
} }
bool bool
BHttpHeaders::AddHeader(const char* name, const char* value) BHttpHeaders::AddHeader(const char* name, const char* value)
{ {
BHttpHeader* heapHeader = new(std::nothrow) BHttpHeader(name, value); return _AddOrDeleteHeader(new(std::nothrow) BHttpHeader(name, value));
if (heapHeader != NULL) {
fHeaderList.AddItem(heapHeader);
return true;
}
return false;
} }
@ -315,3 +300,15 @@ BHttpHeaders::_EraseData()
delete header; delete header;
} }
} }
bool
BHttpHeaders::_AddOrDeleteHeader(BHttpHeader* header)
{
if (header != NULL) {
if (fHeaderList.AddItem(header))
return true;
delete header;
}
return false;
}