summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2010-03-25 19:05:35 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2010-03-26 11:25:13 (GMT)
commitdf0e6759e8ebc1053f951d3a5398a41156e91913 (patch)
tree18396f0e4763f37ada5acc3b6f60fd151d26fbaf /src/corelib
parente7eb7bdf63791ed03257f2f23b1f515e4d89e054 (diff)
downloadQt-df0e6759e8ebc1053f951d3a5398a41156e91913.zip
Qt-df0e6759e8ebc1053f951d3a5398a41156e91913.tar.gz
Qt-df0e6759e8ebc1053f951d3a5398a41156e91913.tar.bz2
QMetaObject::normalizeType: fix uses of const and template.
'const' was not removed from templated class This even fixes compilation errors if using const return templated types We can change the normalized signature in Qt 4.7 as it has already changed and we have code to check that if moc revision < 5 it will renormalize all the symbols cf commit b881d8fb99972f1bd04ab4c84843cc8d43ddbeed Task-number: QTBUG-7421 Reviewed-by: Brad Reviewed-by: Kent Hansen
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qmetaobject_p.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/corelib/kernel/qmetaobject_p.h b/src/corelib/kernel/qmetaobject_p.h
index a176149..1f4bd2f 100644
--- a/src/corelib/kernel/qmetaobject_p.h
+++ b/src/corelib/kernel/qmetaobject_p.h
@@ -196,7 +196,7 @@ static QByteArray normalizeTypeInternal(const char *t, const char *e, bool fixSc
if (*(e-1) == '&') { // treat const reference as value
t += 6;
--e;
- } else if (is_ident_char(*(e-1))) { // treat const value as value
+ } else if (is_ident_char(*(e-1)) || *(e-1) == '>') { // treat const value as value
t += 6;
}
}
@@ -294,6 +294,8 @@ static QByteArray normalizeTypeInternal(const char *t, const char *e, bool fixSc
if (adjustConst && t != e && *t == '&') {
// treat const ref as value
++t;
+ } else if (adjustConst && !star) {
+ // treat const as value
} else if (!star) {
// move const to the front (but not if const comes after a *)
result.prepend("const ");