diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-25 19:05:35 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-26 11:25:13 (GMT) |
commit | df0e6759e8ebc1053f951d3a5398a41156e91913 (patch) | |
tree | 18396f0e4763f37ada5acc3b6f60fd151d26fbaf /src/corelib | |
parent | e7eb7bdf63791ed03257f2f23b1f515e4d89e054 (diff) | |
download | Qt-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.h | 4 |
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 "); |