[Uml-devel] kdesdk/umbrello/umbrello
Jonathan Riddell
jri at jriddell.org
Tue Nov 4 13:02:13 UTC 2003
CVS commit by jriddell:
Add check to UMLDoc::saveToXMI to prevent crash when objectList
contains strange values. Next challenge is to find out why objectList
contains strange values.
M +17 -6 umldoc.cpp 1.95
--- kdesdk/umbrello/umbrello/umldoc.cpp #1.94:1.95
@@ -566,12 +566,10 @@ QString UMLDoc::uniqObjectName(const UML
* AddUMLObjectPaste if pasting.
*/
-void UMLDoc::addUMLObject( UMLObject * object )
-{
+void UMLDoc::addUMLObject(UMLObject* object) {
objectList.append( object );
}
////////////////////////////////////////////////////////////////////////////////////////////////////
// a simple removeal of an object
-void UMLDoc::slotRemoveUMLObject( UMLObject * object )
-{
+void UMLDoc::slotRemoveUMLObject(UMLObject* object) {
objectList.remove(object);
}
@@ -1221,6 +1220,6 @@ void UMLDoc::removeUMLObject(UMLObject *
pClass->removeTemplate((UMLTemplate*)o);
}
- setModified(true);
+ setModified(true);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -1358,8 +1358,18 @@ bool UMLDoc::saveToXMI(QIODevice& file)
if (t == ot_Attribute || t == ot_Operation || t == ot_Association)
continue;
- if (! o->saveToXMI(doc, objectsElement))
+ if (t != ot_Actor && t != ot_UseCase && t != ot_Interface && t != ot_Datatype
+ && t != ot_Enum && t != ot_Class && t != ot_EnumLiteral && t != ot_Template
+ && t != ot_Component && t != ot_Artifact && t != ot_Node
+ && t != ot_Stereotype) {
+ kdWarning() << "UMLDoc::saveToXMI() trying to save a non-existant object from objectList"
+ << endl;
+ continue;
+ }
+ if (! o->saveToXMI(doc, objectsElement)) {
status = false;
}
+ }
+
// Save the UMLAssociations.
// These are saved last so that upon loading, an association's role
More information about the umbrello-devel
mailing list