https://bugs.kde.org/show_bug.cgi?id=445119
Oliver Kellogg <okell...@users.sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |okellogg@users.sourceforge. | |net --- Comment #5 from Oliver Kellogg <okell...@users.sourceforge.net> --- (In reply to Robert Hairgrove from comment #0) > Using Umbrello from Git/master: > > In file "component.cpp" at line 58 in the method > "UMLComponent::saveToXMI1()": > > for (UMLObjectListIt objectsIt(m_objects); objectsIt.hasNext();) { > UMLObject* obj = objectsIt.next(); > uIgnoreZeroPointer(obj); > obj->saveToXMI1 (writer); > } > > What happens if "obj" == nullptr? A warning is emitted by > "uIgnoreZeroPointer", but "obj" is dereferenced after that anyway, which > causes undefined behavior according to the C++ standard. Looking at the definition of uIgnoreZeroPointer, in umbrello/debug/debug_utils.h : #define uIgnoreZeroPointer(a) if (!a) { uDebug() << "zero pointer detected" << __FILE__ << __LINE__; continue; } The `continue` statement means that the null pointer will not be accessed. Just a minor point... not to detract from the question of why lists contain null pointers at all. -- You are receiving this mail because: You are watching all bug changes.