REVIEW: Memory Leak - props.cxx
2,028 (1,976 direct, 52 indirect) bytes in 13 blocks are definitely lost 1,963 bytes in 47 blocks are indirectly lost 1,544 bytes in 193 blocks are indirectly lost 662 bytes in 32 blocks are indirectly lost 152 bytes in 1 blocks are definitely lost 32 bytes in 1 blocks are indirectly lost 8 bytes in 1 blocks are indirectly lost
This commit is contained in:
@@ -330,6 +330,7 @@ static char *
|
|||||||
copy_string (const char * s)
|
copy_string (const char * s)
|
||||||
{
|
{
|
||||||
size_t slen = strlen(s);
|
size_t slen = strlen(s);
|
||||||
|
// REVIEW: Memory Leak - 1,963 bytes in 47 blocks are indirectly lost
|
||||||
char * copy = new char[slen + 1];
|
char * copy = new char[slen + 1];
|
||||||
|
|
||||||
// the source string length is known so no need to check for '\0'
|
// the source string length is known so no need to check for '\0'
|
||||||
@@ -432,6 +433,7 @@ SGPropertyNode::getChildImpl (Itr begin, Itr end, int index, bool create)
|
|||||||
if (node) {
|
if (node) {
|
||||||
return node;
|
return node;
|
||||||
} else if (create) {
|
} else if (create) {
|
||||||
|
// REVIEW: Memory Leak - 2,028 (1,976 direct, 52 indirect) bytes in 13 blocks are definitely lost
|
||||||
node = new SGPropertyNode(begin, end, index, this);
|
node = new SGPropertyNode(begin, end, index, this);
|
||||||
_children.push_back(node);
|
_children.push_back(node);
|
||||||
fireChildAdded(node);
|
fireChildAdded(node);
|
||||||
@@ -960,6 +962,7 @@ SGPropertyNode::SGPropertyNode( const std::string& name,
|
|||||||
_type(props::NONE),
|
_type(props::NONE),
|
||||||
_tied(false),
|
_tied(false),
|
||||||
_attr(READ|WRITE),
|
_attr(READ|WRITE),
|
||||||
|
// REVIEW: Memory Leak - 662 bytes in 32 blocks are indirectly lost
|
||||||
_listeners(0)
|
_listeners(0)
|
||||||
{
|
{
|
||||||
_local_val.string_val = 0;
|
_local_val.string_val = 0;
|
||||||
@@ -1083,6 +1086,7 @@ SGPropertyNode::addChild(const char * name, int min_index, bool append)
|
|||||||
: first_unused_index(name, _children, min_index);
|
: first_unused_index(name, _children, min_index);
|
||||||
|
|
||||||
SGPropertyNode_ptr node;
|
SGPropertyNode_ptr node;
|
||||||
|
// REVIEW: Memory Leak - 152 bytes in 1 blocks are definitely lost
|
||||||
node = new SGPropertyNode(name, name + strlen(name), pos, this);
|
node = new SGPropertyNode(name, name + strlen(name), pos, this);
|
||||||
_children.push_back(node);
|
_children.push_back(node);
|
||||||
fireChildAdded(node);
|
fireChildAdded(node);
|
||||||
@@ -2405,6 +2409,7 @@ SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener,
|
|||||||
bool initial)
|
bool initial)
|
||||||
{
|
{
|
||||||
if (_listeners == 0)
|
if (_listeners == 0)
|
||||||
|
// REVIEW: Memory Leak - 32 bytes in 1 blocks are indirectly lost
|
||||||
_listeners = new SGPropertyNodeListeners;
|
_listeners = new SGPropertyNodeListeners;
|
||||||
|
|
||||||
/* If there's a nullptr entry (a listener that was unregistered), we
|
/* If there's a nullptr entry (a listener that was unregistered), we
|
||||||
@@ -2415,6 +2420,7 @@ SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener,
|
|||||||
(SGPropertyChangeListener*) nullptr
|
(SGPropertyChangeListener*) nullptr
|
||||||
);
|
);
|
||||||
if (it == _listeners->_items.end()) {
|
if (it == _listeners->_items.end()) {
|
||||||
|
// REVIEW: Memory Leak - 8 bytes in 1 blocks are indirectly lost
|
||||||
_listeners->_items.push_back(listener);
|
_listeners->_items.push_back(listener);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -2645,6 +2651,7 @@ SGPropertyChangeListener::childRemoved (SGPropertyNode * parent,
|
|||||||
void
|
void
|
||||||
SGPropertyChangeListener::register_property (SGPropertyNode * node)
|
SGPropertyChangeListener::register_property (SGPropertyNode * node)
|
||||||
{
|
{
|
||||||
|
// REVIEW: Memory Leak - 1,544 bytes in 193 blocks are indirectly lost
|
||||||
_properties.push_back(node);
|
_properties.push_back(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user