Fix crash in uic
authorAndreas Holzammer <andreas.holzammer@kdab.com>
Wed, 1 Aug 2012 11:53:10 +0000 (13:53 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 1 Aug 2012 13:37:46 +0000 (15:37 +0200)
Compiling Qt5 uic with Microsoft Visual Studio 2008
with SP1 will lead into a assertion in the copy
constructor of qstring.

This is apparently a compiler Bug.

Change-Id: Ia3353434d00b2e87800b937d891eabef86293751
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/tools/uic/driver.cpp

index ea1d4f2..9ef6fcb 100644 (file)
@@ -69,7 +69,9 @@ QString Driver::findOrInsertWidget(DomWidget *ui_widget)
 QString Driver::findOrInsertSpacer(DomSpacer *ui_spacer)
 {
     if (!m_spacers.contains(ui_spacer)) {
-        const QString name = ui_spacer->hasAttributeName() ? ui_spacer->attributeName() : QString();
+        QString name;
+        if (ui_spacer->hasAttributeName())
+            name = ui_spacer->attributeName();
         m_spacers.insert(ui_spacer, unique(name, QLatin1String("QSpacerItem")));
     }
 
@@ -79,7 +81,9 @@ QString Driver::findOrInsertSpacer(DomSpacer *ui_spacer)
 QString Driver::findOrInsertLayout(DomLayout *ui_layout)
 {
     if (!m_layouts.contains(ui_layout)) {
-        const QString name = ui_layout->hasAttributeName() ? ui_layout->attributeName() : QString();
+        QString name;
+        if (ui_layout->hasAttributeName())
+            name = ui_layout->attributeName();
         m_layouts.insert(ui_layout, unique(name, ui_layout->attributeClass()));
     }