avoid allocating QmlEnumValues each time

Change-Id: I61f39f5bafcb2c84e91f5bca4b52010a08ed9f37
Reviewed-on: http://codereview.qt.nokia.com/1592
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
This commit is contained in:
Fawzi Mohamed
2011-07-13 14:52:41 +02:00
parent 4becd473f8
commit 0c0ffab1bb
2 changed files with 29 additions and 17 deletions

View File

@@ -421,6 +421,20 @@ private:
Error m_error;
};
class QMLJS_EXPORT QmlEnumValue: public NumberValue
{
public:
QmlEnumValue(const LanguageUtils::FakeMetaEnum &metaEnum, ValueOwner *valueOwner);
virtual ~QmlEnumValue();
QString name() const;
QStringList keys() const;
private:
LanguageUtils::FakeMetaEnum *_metaEnum;
};
// A ObjectValue based on a FakeMetaObject.
// May only have other QmlObjectValues as ancestors.
class QMLJS_EXPORT QmlObjectValue: public ObjectValue
@@ -455,6 +469,7 @@ public:
bool hasChildInPackage() const;
LanguageUtils::FakeMetaEnum getEnum(const QString &typeName) const;
const QmlEnumValue *getEnumValue(const QString &typeName) const;
protected:
const Value *findOrCreateSignature(int index, const LanguageUtils::FakeMetaMethod &method,
QString *methodName) const;
@@ -466,19 +481,7 @@ private:
const QString _packageName;
const LanguageUtils::ComponentVersion _componentVersion;
mutable QHash<int, const Value *> _metaSignature;
};
class QMLJS_EXPORT QmlEnumValue: public NumberValue
{
public:
QmlEnumValue(const LanguageUtils::FakeMetaEnum &metaEnum, ValueOwner *valueOwner);
virtual ~QmlEnumValue();
QString name() const;
QStringList keys() const;
private:
LanguageUtils::FakeMetaEnum *_metaEnum;
QHash<QString, const QmlEnumValue * > _enums;
};
class QMLJS_EXPORT Activation