DataTree: Simplify object init

This commit is contained in:
2021-07-05 12:31:13 +02:00
parent 0e6cbf6664
commit 43518eff80
2 changed files with 15 additions and 55 deletions

View File

@@ -20,21 +20,6 @@ CDataMember::CDataMember( const char * pName, const int pLen )
NameLen = (pLen == -1)? strlen( pName ) : pLen ;
Name = strndup( pName, NameLen );
}
else {
NameLen = 0;
Name = NULL;
}
Type = jtNull;
Value = NULL;
Len = 0;
FirstChild = NULL;
LastChild = NULL;
Parent = NULL;
PrevPeer = NULL;
NextPeer = NULL;
}
//---------------------------------------------------------------------------
@@ -44,24 +29,8 @@ CDataMember::CDataMember( CDataMember * pParent, const char * pName, const int p
NameLen = (pLen == -1)? strlen( pName ) : pLen ;
Name = strndup( pName, NameLen );
}
else {
NameLen = 0;
Name = NULL;
}
Type = jtNull;
Value = NULL;
Len = 0;
FirstChild = NULL;
LastChild = NULL;
if (!pParent) {
Parent = NULL;
PrevPeer = NULL;
NextPeer = NULL;
}
else {
if (pParent) {
// Clear/reset parent if not object
Parent = pParent;
if ((Parent->Type != jtNull) && (Parent->Type != jtObject) && (Parent->Type != jtArray)) {
@@ -71,17 +40,12 @@ CDataMember::CDataMember( CDataMember * pParent, const char * pName, const int p
// Insert into Parent & Peer lists
Parent->Len++;
if (!Parent->FirstChild) {
PrevPeer = NULL;
NextPeer = NULL;
Parent->FirstChild = this;
Parent->LastChild = this;
}
else {
PrevPeer = Parent->LastChild;
Parent->LastChild->NextPeer = this;
NextPeer = NULL;
Parent->LastChild = this;
}
}
@@ -93,19 +57,15 @@ CDataMember::~CDataMember()
// Remove from parent
if (Parent) {
Parent->Len--;
if (this == Parent->LastChild) {
if (this == Parent->LastChild)
Parent->LastChild = PrevPeer;
}
if (this == Parent->FirstChild) {
if (this == Parent->FirstChild)
Parent->FirstChild = NextPeer;
}
}
if (PrevPeer) {
if (PrevPeer)
PrevPeer->NextPeer = NextPeer;
}
if (NextPeer) {
if (NextPeer)
NextPeer->PrevPeer = PrevPeer;
}
// Destroy value/children
Clear();