From 9426a7769064258d5fbb56d7a75cae5875945f4b Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 1 Sep 2015 11:48:08 -0300 Subject: [PATCH] Fixed crash when empty lines in App::Annotation - fixes #2016 --- src/Gui/ViewProviderAnnotation.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Gui/ViewProviderAnnotation.cpp b/src/Gui/ViewProviderAnnotation.cpp index 4797cecc9..9dae716e5 100644 --- a/src/Gui/ViewProviderAnnotation.cpp +++ b/src/Gui/ViewProviderAnnotation.cpp @@ -224,14 +224,17 @@ void ViewProviderAnnotation::updateData(const App::Property* prop) pLabel->string.setNum((int)lines.size()); pLabel3d->string.setNum((int)lines.size()); for (std::vector::const_iterator it = lines.begin(); it != lines.end(); ++it) { + const char* cs = it->c_str(); + if (it->empty()) + cs = " "; // empty lines make coin crash, we use a space instead #if (COIN_MAJOR_VERSION <= 3) QByteArray latin1str; - latin1str = (QString::fromUtf8(it->c_str())).toLatin1(); + latin1str = (QString::fromUtf8(cs)).toLatin1(); pLabel->string.set1Value(index, SbString(latin1str.constData())); pLabel3d->string.set1Value(index, SbString(latin1str.constData())); #else - pLabel->string.set1Value(index, SbString(it->c_str())); - pLabel3d->string.set1Value(index, SbString(it->c_str())); + pLabel->string.set1Value(index, SbString(cs)); + pLabel3d->string.set1Value(index, SbString(cs)); #endif index++; }