Important Bug fix:
- Fixed memory errors and leaks in DataTreeCore: - Initial values not set correctly for Name, Next/PrevPeer - Correctly set Last/FirstChild & Prev/NextPeer references on delete - Added methods SetValuePtr() - Fixed memory errors and leaks in JSONparseCore: - Set set string/int/float values by passing pointers, ie. SetValuePtr()
This commit is contained in:
@@ -681,7 +681,7 @@ bool CJSONparse::ParseString( CDataMember * Member )
|
||||
}
|
||||
|
||||
// Set string
|
||||
Member->SetValue( jtString, Value, Len );
|
||||
Member->SetValuePtr( jtString, Value, Len );
|
||||
return true;
|
||||
}
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -712,7 +712,7 @@ bool CJSONparse::ParsePrimitive( CDataMember * Member )
|
||||
|
||||
// Check for primitive values
|
||||
if ((Len == 4) && !strncasecmp( Mark, "null", 4 )) {
|
||||
Member->SetValue( jtNull, NULL, -1 );
|
||||
Member->SetValue( jtNull );
|
||||
}
|
||||
else if ((Len == 4) && !strncasecmp( Mark, "true", 4 )) {
|
||||
Member->SetValue( jtBool, "1" );
|
||||
@@ -727,7 +727,7 @@ bool CJSONparse::ParsePrimitive( CDataMember * Member )
|
||||
Value = (char*)malloc( Len+1 );
|
||||
memcpy( Value, Mark, Len );
|
||||
Value[Len] = 0;
|
||||
Member->SetValue( jtInt, Value, Len );
|
||||
Member->SetValuePtr( jtInt, Value, Len );
|
||||
}
|
||||
else {
|
||||
// Try conversion to float
|
||||
@@ -736,7 +736,7 @@ bool CJSONparse::ParsePrimitive( CDataMember * Member )
|
||||
Value = (char*)malloc( Len+1 );
|
||||
memcpy( Value, Mark, Len );
|
||||
Value[Len] = 0;
|
||||
Member->SetValue( jtFloat, Value, Len );
|
||||
Member->SetValuePtr( jtFloat, Value, Len );
|
||||
}
|
||||
else {
|
||||
Error = true;
|
||||
|
||||
Reference in New Issue
Block a user