diff --git a/DataTreeCore.cpp b/DataTreeCore.cpp index c2c1cb7..bb9da4a 100644 --- a/DataTreeCore.cpp +++ b/DataTreeCore.cpp @@ -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(); diff --git a/DataTreeCore.h b/DataTreeCore.h index a930d24..a4d0a1a 100644 --- a/DataTreeCore.h +++ b/DataTreeCore.h @@ -23,19 +23,19 @@ typedef enum { jtNull = 0, jtBool = 1, jtInt = 2, jtFloat = 3, jtString = 4, jtA // One Config Members class CDataMember { - char * Name; - unsigned short NameLen; - EJsonDataType Type; + char * Name = NULL; + unsigned short NameLen = 0; + EJsonDataType Type = jtNull; - char * Value; - unsigned short Len; + char * Value = NULL; + unsigned short Len = 0; - CDataMember * FirstChild; - CDataMember * LastChild; + CDataMember * FirstChild = NULL; + CDataMember * LastChild = NULL; - CDataMember * Parent; - CDataMember * PrevPeer; - CDataMember * NextPeer; + CDataMember * Parent = NULL; + CDataMember * PrevPeer = NULL; + CDataMember * NextPeer = NULL; // Manage Members CDataMember * CreateChild( const char * Name, const int Len = -1 );