DataTree: Simplify object init
This commit is contained in:
@@ -20,21 +20,6 @@ CDataMember::CDataMember( const char * pName, const int pLen )
|
|||||||
NameLen = (pLen == -1)? strlen( pName ) : pLen ;
|
NameLen = (pLen == -1)? strlen( pName ) : pLen ;
|
||||||
Name = strndup( pName, NameLen );
|
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 ;
|
NameLen = (pLen == -1)? strlen( pName ) : pLen ;
|
||||||
Name = strndup( pName, NameLen );
|
Name = strndup( pName, NameLen );
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
NameLen = 0;
|
|
||||||
Name = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
Type = jtNull;
|
if (pParent) {
|
||||||
Value = NULL;
|
|
||||||
Len = 0;
|
|
||||||
|
|
||||||
FirstChild = NULL;
|
|
||||||
LastChild = NULL;
|
|
||||||
|
|
||||||
if (!pParent) {
|
|
||||||
Parent = NULL;
|
|
||||||
PrevPeer = NULL;
|
|
||||||
NextPeer = NULL;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// Clear/reset parent if not object
|
// Clear/reset parent if not object
|
||||||
Parent = pParent;
|
Parent = pParent;
|
||||||
if ((Parent->Type != jtNull) && (Parent->Type != jtObject) && (Parent->Type != jtArray)) {
|
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
|
// Insert into Parent & Peer lists
|
||||||
Parent->Len++;
|
Parent->Len++;
|
||||||
if (!Parent->FirstChild) {
|
if (!Parent->FirstChild) {
|
||||||
PrevPeer = NULL;
|
|
||||||
NextPeer = NULL;
|
|
||||||
|
|
||||||
Parent->FirstChild = this;
|
Parent->FirstChild = this;
|
||||||
Parent->LastChild = this;
|
Parent->LastChild = this;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
PrevPeer = Parent->LastChild;
|
PrevPeer = Parent->LastChild;
|
||||||
Parent->LastChild->NextPeer = this;
|
Parent->LastChild->NextPeer = this;
|
||||||
NextPeer = NULL;
|
|
||||||
|
|
||||||
Parent->LastChild = this;
|
Parent->LastChild = this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,19 +57,15 @@ CDataMember::~CDataMember()
|
|||||||
// Remove from parent
|
// Remove from parent
|
||||||
if (Parent) {
|
if (Parent) {
|
||||||
Parent->Len--;
|
Parent->Len--;
|
||||||
if (this == Parent->LastChild) {
|
if (this == Parent->LastChild)
|
||||||
Parent->LastChild = PrevPeer;
|
Parent->LastChild = PrevPeer;
|
||||||
}
|
if (this == Parent->FirstChild)
|
||||||
if (this == Parent->FirstChild) {
|
|
||||||
Parent->FirstChild = NextPeer;
|
Parent->FirstChild = NextPeer;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (PrevPeer) {
|
if (PrevPeer)
|
||||||
PrevPeer->NextPeer = NextPeer;
|
PrevPeer->NextPeer = NextPeer;
|
||||||
}
|
if (NextPeer)
|
||||||
if (NextPeer) {
|
|
||||||
NextPeer->PrevPeer = PrevPeer;
|
NextPeer->PrevPeer = PrevPeer;
|
||||||
}
|
|
||||||
|
|
||||||
// Destroy value/children
|
// Destroy value/children
|
||||||
Clear();
|
Clear();
|
||||||
|
|||||||
@@ -23,19 +23,19 @@ typedef enum { jtNull = 0, jtBool = 1, jtInt = 2, jtFloat = 3, jtString = 4, jtA
|
|||||||
// One Config Members
|
// One Config Members
|
||||||
class CDataMember
|
class CDataMember
|
||||||
{
|
{
|
||||||
char * Name;
|
char * Name = NULL;
|
||||||
unsigned short NameLen;
|
unsigned short NameLen = 0;
|
||||||
EJsonDataType Type;
|
EJsonDataType Type = jtNull;
|
||||||
|
|
||||||
char * Value;
|
char * Value = NULL;
|
||||||
unsigned short Len;
|
unsigned short Len = 0;
|
||||||
|
|
||||||
CDataMember * FirstChild;
|
CDataMember * FirstChild = NULL;
|
||||||
CDataMember * LastChild;
|
CDataMember * LastChild = NULL;
|
||||||
|
|
||||||
CDataMember * Parent;
|
CDataMember * Parent = NULL;
|
||||||
CDataMember * PrevPeer;
|
CDataMember * PrevPeer = NULL;
|
||||||
CDataMember * NextPeer;
|
CDataMember * NextPeer = NULL;
|
||||||
|
|
||||||
// Manage Members
|
// Manage Members
|
||||||
CDataMember * CreateChild( const char * Name, const int Len = -1 );
|
CDataMember * CreateChild( const char * Name, const int Len = -1 );
|
||||||
|
|||||||
Reference in New Issue
Block a user