From b7d2eea4b2f070ee7024d07b412278ac9e55e4da Mon Sep 17 00:00:00 2001 From: Scott Giese Date: Sat, 22 Aug 2020 23:52:36 -0500 Subject: [PATCH] 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 --- simgear/props/props.cxx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/simgear/props/props.cxx b/simgear/props/props.cxx index 917b2aeb..7572f0db 100755 --- a/simgear/props/props.cxx +++ b/simgear/props/props.cxx @@ -330,6 +330,7 @@ static char * copy_string (const char * s) { size_t slen = strlen(s); + // REVIEW: Memory Leak - 1,963 bytes in 47 blocks are indirectly lost char * copy = new char[slen + 1]; // 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) { return node; } 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); _children.push_back(node); fireChildAdded(node); @@ -960,6 +962,7 @@ SGPropertyNode::SGPropertyNode( const std::string& name, _type(props::NONE), _tied(false), _attr(READ|WRITE), + // REVIEW: Memory Leak - 662 bytes in 32 blocks are indirectly lost _listeners(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); SGPropertyNode_ptr node; + // REVIEW: Memory Leak - 152 bytes in 1 blocks are definitely lost node = new SGPropertyNode(name, name + strlen(name), pos, this); _children.push_back(node); fireChildAdded(node); @@ -2405,6 +2409,7 @@ SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener, bool initial) { if (_listeners == 0) + // REVIEW: Memory Leak - 32 bytes in 1 blocks are indirectly lost _listeners = new SGPropertyNodeListeners; /* If there's a nullptr entry (a listener that was unregistered), we @@ -2415,6 +2420,7 @@ SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener, (SGPropertyChangeListener*) nullptr ); if (it == _listeners->_items.end()) { + // REVIEW: Memory Leak - 8 bytes in 1 blocks are indirectly lost _listeners->_items.push_back(listener); } else { @@ -2645,6 +2651,7 @@ SGPropertyChangeListener::childRemoved (SGPropertyNode * parent, void SGPropertyChangeListener::register_property (SGPropertyNode * node) { + // REVIEW: Memory Leak - 1,544 bytes in 193 blocks are indirectly lost _properties.push_back(node); }