diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2009-06-24 21:16:41 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2009-06-24 21:16:41 (GMT) |
commit | fd5c6436d4be5ce6db57a8a34951c8ab4dac9000 (patch) | |
tree | 2b2ce0df9cd0bfcc1c8a0566668c92df8be94206 | |
parent | 117b9bb3d576d9974b3d05174d1fccf98e47cb22 (diff) | |
parent | 5f5cf5b798cc7e65e47987b654beaf9d762406eb (diff) | |
download | Qt-fd5c6436d4be5ce6db57a8a34951c8ab4dac9000.zip Qt-fd5c6436d4be5ce6db57a8a34951c8ab4dac9000.tar.gz Qt-fd5c6436d4be5ce6db57a8a34951c8ab4dac9000.tar.bz2 |
Merge branch '4.5'
Conflicts:
tests/auto/qsqldatabase/tst_databases.h
-rwxr-xr-x | config.tests/unix/compile.test | 3 | ||||
-rw-r--r-- | mkspecs/common/mac-llvm.conf | 4 | ||||
-rw-r--r-- | mkspecs/macx-llvm/qmake.conf | 2 | ||||
-rw-r--r-- | qmake/generators/metamakefile.cpp | 9 | ||||
-rw-r--r-- | src/corelib/arch/macosx/arch.pri | 7 | ||||
-rw-r--r-- | src/corelib/tools/qstring.cpp | 2 | ||||
-rw-r--r-- | src/gui/dialogs/qcolordialog.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qtextengine.cpp | 1 | ||||
-rw-r--r-- | src/sql/drivers/ibase/qsql_ibase.cpp | 52 | ||||
-rw-r--r-- | tools/designer/src/components/signalsloteditor/signalslot_utils.cpp | 4 |
10 files changed, 55 insertions, 31 deletions
diff --git a/config.tests/unix/compile.test b/config.tests/unix/compile.test index a854bd1..f9c18fc 100755 --- a/config.tests/unix/compile.test +++ b/config.tests/unix/compile.test @@ -64,7 +64,8 @@ test -d "$OUTDIR/$TEST" || mkdir -p "$OUTDIR/$TEST" cd "$OUTDIR/$TEST" -make distclean >/dev/null 2>&1 +test -e Makefile && make distclean >/dev/null 2>&1 + "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "CONFIG+=$QMAKE_CONFIG" "LIBS*=$LFLAGS" "LIBS+=$MAC_ARCH_LFLAGS" "INCLUDEPATH*=$INCLUDEPATH" "QMAKE_CXXFLAGS*=$CXXFLAGS" "QMAKE_CXXFLAGS+=$MAC_ARCH_CXXFLAGS" "$SRCDIR/$TEST/$EXE.pro" -o "$OUTDIR/$TEST/Makefile" if [ "$VERBOSE" = "yes" ]; then diff --git a/mkspecs/common/mac-llvm.conf b/mkspecs/common/mac-llvm.conf index 624aec4..55850c6 100644 --- a/mkspecs/common/mac-llvm.conf +++ b/mkspecs/common/mac-llvm.conf @@ -48,8 +48,8 @@ QMAKE_CXXFLAGS_DWARF2 += $$QMAKE_CFLAGS_DWARF2 QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -QMAKE_LINK = llvm-g++ -QMAKE_LINK_SHLIB = llvm-g++ +QMAKE_LINK = $$QMAKE_CXX +QMAKE_LINK_SHLIB = $$QMAKE_CXX QMAKE_LFLAGS += -headerpad_max_install_names QMAKE_LFLAGS_RELEASE += QMAKE_LFLAGS_DEBUG += diff --git a/mkspecs/macx-llvm/qmake.conf b/mkspecs/macx-llvm/qmake.conf index cb8aaa1..de8040c 100644 --- a/mkspecs/macx-llvm/qmake.conf +++ b/mkspecs/macx-llvm/qmake.conf @@ -14,6 +14,4 @@ QMAKE_INCREMENTAL_STYLE = sublib include(../common/mac-llvm.conf) -QMAKE_OBJECTIVE_CC = gcc - load(qt_config) diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp index 233e8e5..7f4e914 100644 --- a/qmake/generators/metamakefile.cpp +++ b/qmake/generators/metamakefile.cpp @@ -136,7 +136,12 @@ BuildsMetaMakefileGenerator::init() Build *build = new Build; build->name = name; build->makefile = createMakefileGenerator(project, false); - makefiles += build; + if (build->makefile){ + makefiles += build; + }else { + delete build; + return false; + } } return true; } @@ -437,7 +442,7 @@ MetaMakefileGenerator::createMakefileGenerator(QMakeProject *proj, bool noIO) QString gen = proj->first("MAKEFILE_GENERATOR"); if(gen.isEmpty()) { - fprintf(stderr, "No generator specified in config file: %s\n", + fprintf(stderr, "MAKEFILE_GENERATOR variable not set as a result of parsing : %s. Possibly qmake was not able to find files included using \"include(..)\" - enable qmake debugging to investigate more.\n", proj->projectFile().toLatin1().constData()); } else if(gen == "UNIX") { mkfile = new UnixMakefileGenerator; diff --git a/src/corelib/arch/macosx/arch.pri b/src/corelib/arch/macosx/arch.pri index e42a962..a2b1bf7 100644 --- a/src/corelib/arch/macosx/arch.pri +++ b/src/corelib/arch/macosx/arch.pri @@ -1,7 +1,6 @@ # # Mac OS X architecture # -!*-icc*:!*-g++* { - contains($$list($$system(uname -m)), .*86):SOURCES += $$QT_ARCH_CPP/../i386/qatomic.s - else:SOURCES += $$QT_ARCH_CPP/../powerpc/qatomic32.s -} + +# Left blank intentionally since all the current compilers that we support can +# handle in-line assembly. diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 3ff263d..71482f5 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -169,7 +169,7 @@ static int ucstricmp(const ushort *a, const ushort *ae, const uchar *b) // Unicode case-insensitive comparison static int ucstrcmp(const QChar *a, int alen, const QChar *b, int blen) { - if (a == b) + if (a == b && alen == blen) return 0; int l = qMin(alen, blen); while (l-- && *a == *b) diff --git a/src/gui/dialogs/qcolordialog.cpp b/src/gui/dialogs/qcolordialog.cpp index 416e14a..42d3a9a 100644 --- a/src/gui/dialogs/qcolordialog.cpp +++ b/src/gui/dialogs/qcolordialog.cpp @@ -1262,7 +1262,7 @@ void QColorShower::retranslateStrings() void QColorShower::updateQColor() { QColor oldQColor(curQColor); - curQColor.setRgba(qRgba(qRed(curCol), qGreen(curCol), qBlue(curCol), qAlpha(curCol))); + curQColor.setRgba(qRgba(qRed(curCol), qGreen(curCol), qBlue(curCol), currentAlpha())); if (curQColor != oldQColor) emit currentColorChanged(curQColor); } diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 829ac12..407fcb6 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -2210,6 +2210,7 @@ bool QTextEngine::atWordSeparator(int position) const case '\'': case '"': case '~': + case '|': return true; default: return false; diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp index d714327..893c98c 100644 --- a/src/sql/drivers/ibase/qsql_ibase.cpp +++ b/src/sql/drivers/ibase/qsql_ibase.cpp @@ -97,6 +97,7 @@ static bool getIBaseError(QString& msg, ISC_STATUS* status, ISC_LONG &sqlcode, Q static void createDA(XSQLDA *&sqlda) { sqlda = (XSQLDA *) malloc(XSQLDA_LENGTH(1)); + if (sqlda == (XSQLDA*)0) return; sqlda->sqln = 1; sqlda->sqld = 0; sqlda->version = SQLDA_CURRENT_VERSION; @@ -106,8 +107,10 @@ static void createDA(XSQLDA *&sqlda) static void enlargeDA(XSQLDA *&sqlda, int n) { - free(sqlda); + if (sqlda != (XSQLDA*)0) + free(sqlda); sqlda = (XSQLDA *) malloc(XSQLDA_LENGTH(n)); + if (sqlda == (XSQLDA*)0) return; sqlda->sqln = n; sqlda->version = SQLDA_CURRENT_VERSION; } @@ -126,14 +129,14 @@ static void initDA(XSQLDA *sqlda) case SQL_TYPE_DATE: case SQL_TEXT: case SQL_BLOB: - sqlda->sqlvar[i].sqldata = (char*)malloc(sqlda->sqlvar[i].sqllen); + sqlda->sqlvar[i].sqldata = new char[sqlda->sqlvar[i].sqllen]; break; case SQL_ARRAY: - sqlda->sqlvar[i].sqldata = (char*)malloc(sizeof(ISC_QUAD)); + sqlda->sqlvar[i].sqldata = new char[sizeof(ISC_QUAD)]; memset(sqlda->sqlvar[i].sqldata, 0, sizeof(ISC_QUAD)); break; case SQL_VARYING: - sqlda->sqlvar[i].sqldata = (char*)malloc(sqlda->sqlvar[i].sqllen + sizeof(short)); + sqlda->sqlvar[i].sqldata = new char[sqlda->sqlvar[i].sqllen + sizeof(short)]; break; default: // not supported - do not bind. @@ -141,7 +144,7 @@ static void initDA(XSQLDA *sqlda) break; } if (sqlda->sqlvar[i].sqltype & 1) { - sqlda->sqlvar[i].sqlind = (short*)malloc(sizeof(short)); + sqlda->sqlvar[i].sqlind = new short[1]; *(sqlda->sqlvar[i].sqlind) = 0; } else { sqlda->sqlvar[i].sqlind = 0; @@ -154,8 +157,8 @@ static void delDA(XSQLDA *&sqlda) if (!sqlda) return; for (int i = 0; i < sqlda->sqld; ++i) { - free(sqlda->sqlvar[i].sqlind); - free(sqlda->sqlvar[i].sqldata); + delete sqlda->sqlvar[i].sqlind; + delete sqlda->sqlvar[i].sqldata; } free(sqlda); sqlda = 0; @@ -300,7 +303,7 @@ struct QIBaseEventBuffer { #endif ISC_LONG bufferLength; ISC_LONG eventId; - + enum QIBaseSubscriptionState { Starting, Subscribed, Finished }; QIBaseSubscriptionState subscriptionState; }; @@ -451,8 +454,8 @@ QVariant QIBaseResultPrivate::fetchBlob(ISC_QUAD *bId) } ba.resize(read); - bool isErr = (status[1] == isc_segstr_eof ? false : - isError(QT_TRANSLATE_NOOP("QIBaseResult", + bool isErr = (status[1] == isc_segstr_eof ? false : + isError(QT_TRANSLATE_NOOP("QIBaseResult", "Unable to read BLOB"), QSqlError::StatementError)); @@ -519,7 +522,7 @@ static char* readArrayBuffer(QList<QVariant>& list, char *buffer, short curDim, valList.append(tc->toUnicode(buffer, o)); else valList.append(QString::fromUtf8(buffer, o)); - + buffer += strLen; } break; } @@ -644,8 +647,8 @@ char* fillList<float>(char *buffer, const QList<QVariant> &list, float*) return buffer; } -static char* qFillBufferWithString(char *buffer, const QString& string, - short buflen, bool varying, bool array, +static char* qFillBufferWithString(char *buffer, const QString& string, + short buflen, bool varying, bool array, QTextCodec *tc) { QByteArray str = encodeString(tc, string); // keep a copy of the string alive in this scope @@ -885,7 +888,16 @@ bool QIBaseResult::prepare(const QString& query) setAt(QSql::BeforeFirstRow); createDA(d->sqlda); + if (d->sqlda == (XSQLDA*)0) { + qWarning()<<"QIOBaseResult: createDA(): failed to allocate memory"; + return false; + } + createDA(d->inda); + if (d->inda == (XSQLDA*)0){ + qWarning()<<"QIOBaseResult: createDA(): failed to allocate memory"; + return false; + } if (!d->transaction()) return false; @@ -906,6 +918,10 @@ bool QIBaseResult::prepare(const QString& query) return false; if (d->inda->sqld > d->inda->sqln) { enlargeDA(d->inda, d->inda->sqld); + if (d->inda == (XSQLDA*)0) { + qWarning()<<"QIOBaseResult: enlargeDA(): failed to allocate memory"; + return false; + } isc_dsql_describe_bind(d->status, &d->stmt, FBVERSION, d->inda); if (d->isError(QT_TRANSLATE_NOOP("QIBaseResult", @@ -916,6 +932,10 @@ bool QIBaseResult::prepare(const QString& query) if (d->sqlda->sqld > d->sqlda->sqln) { // need more field descriptors enlargeDA(d->sqlda, d->sqlda->sqld); + if (d->sqlda == (XSQLDA*)0) { + qWarning()<<"QIOBaseResult: enlargeDA(): failed to allocate memory"; + return false; + } isc_dsql_describe(d->status, &d->stmt, FBVERSION, d->sqlda); if (d->isError(QT_TRANSLATE_NOOP("QIBaseResult", "Could not describe statement"), @@ -983,14 +1003,14 @@ bool QIBaseResult::exec() break; case SQL_LONG: if (d->inda->sqlvar[para].sqlscale < 0) - *((long*)d->inda->sqlvar[para].sqldata) = + *((long*)d->inda->sqlvar[para].sqldata) = (long)floor(0.5 + val.toDouble() * pow(10.0, d->inda->sqlvar[para].sqlscale * -1)); else *((long*)d->inda->sqlvar[para].sqldata) = (long)val.toLongLong(); break; case SQL_SHORT: if (d->inda->sqlvar[para].sqlscale < 0) - *((short*)d->inda->sqlvar[para].sqldata) = + *((short*)d->inda->sqlvar[para].sqldata) = (short)floor(0.5 + val.toDouble() * pow(10.0, d->inda->sqlvar[para].sqlscale * -1)); else *((short*)d->inda->sqlvar[para].sqldata) = (short)val.toInt(); @@ -1717,7 +1737,7 @@ static isc_callback qEventCallback(char *result, short length, char *updated) qMutex()->lock(); QIBaseDriver *driver = qBufferDriverMap()->value(result); qMutex()->unlock(); - + // We use an asynchronous call (i.e., queued connection) because the event callback // is executed in a different thread than the one in which the driver lives. if (driver) diff --git a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp index 37269c5..c268d5f 100644 --- a/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp +++ b/tools/designer/src/components/signalsloteditor/signalslot_utils.cpp @@ -275,7 +275,7 @@ namespace qdesigner_internal { const QDesignerMemberSheet *memberSheet = qobject_cast<QDesignerMemberSheet*>(core->extensionManager()->extension(object, Q_TYPEID(QDesignerMemberSheetExtension))); - return memberSheet->isQt3Signal(i); + return (memberSheet && memberSheet->isQt3Signal(i)); } } @@ -294,7 +294,7 @@ namespace qdesigner_internal { const QDesignerMemberSheet *memberSheet = qobject_cast<QDesignerMemberSheet*>(core->extensionManager()->extension(object, Q_TYPEID(QDesignerMemberSheetExtension))); - return memberSheet->isQt3Slot(i); + return (memberSheet && memberSheet->isQt3Slot(i)); } } return false; |