libRTI/ieee1516-2010/RTIvariableLengthData.cpp | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/libRTI/ieee1516-2010/RTIvariableLengthData.cpp b/libRTI/ieee1516-2010/RTIvariableLengthData.cpp index 4f55fcd..7bc95ed 100644 --- a/libRTI/ieee1516-2010/RTIvariableLengthData.cpp +++ b/libRTI/ieee1516-2010/RTIvariableLengthData.cpp @@ -25,12 +25,19 @@ namespace rti1516e VariableLengthData::VariableLengthData(VariableLengthData const & rhs) : _impl(0) { - _impl = new VariableLengthDataImplementation(*(rhs._impl)); + if (rhs._impl) //verification added to prevent NULL IMPL. This is possible when pushing in a map, for example + { + _impl = new VariableLengthDataImplementation(*(rhs._impl)); + } + else + { + _impl = new VariableLengthDataImplementation; + } } VariableLengthData::~VariableLengthData() { - delete _impl; + if(_impl) delete _impl; _impl = NULL; } VariableLengthData & @@ -39,7 +46,7 @@ namespace rti1516e // Beware of self assignment if (this != &rhs) { - delete _impl; + if(_impl) delete _impl; _impl = NULL; _impl = new VariableLengthDataImplementation(*(rhs._impl)); }