diff options
Diffstat (limited to 'src/declarative/qml/qdeclarativeintegercache_p.h')
-rw-r--r-- | src/declarative/qml/qdeclarativeintegercache_p.h | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/src/declarative/qml/qdeclarativeintegercache_p.h b/src/declarative/qml/qdeclarativeintegercache_p.h index 686880e0d7..33dd2485ff 100644 --- a/src/declarative/qml/qdeclarativeintegercache_p.h +++ b/src/declarative/qml/qdeclarativeintegercache_p.h @@ -54,51 +54,35 @@ // #include "private/qdeclarativerefcount_p.h" -#include "private/qdeclarativecleanup_p.h" - -#include <QtCore/qhash.h> - -#include <private/qscriptdeclarativeclass_p.h> +#include "private/qhashedstring_p.h" QT_BEGIN_NAMESPACE class QDeclarativeType; class QDeclarativeEngine; -class QDeclarativeIntegerCache : public QDeclarativeRefCount, public QDeclarativeCleanup +class QDeclarativeIntegerCache : public QDeclarativeRefCount { public: - QDeclarativeIntegerCache(QDeclarativeEngine *); + QDeclarativeIntegerCache(); virtual ~QDeclarativeIntegerCache(); inline int count() const; void add(const QString &, int); + int value(const QString &); - QString findId(int value) const; - inline int value(const QScriptDeclarativeClass::Identifier &id) const; + inline int value(v8::Handle<v8::String>); -protected: - virtual void clear(); + QString findId(int value) const; private: - struct Data : public QScriptDeclarativeClass::PersistentIdentifier { - Data(const QScriptDeclarativeClass::PersistentIdentifier &i, int v) - : QScriptDeclarativeClass::PersistentIdentifier(i), value(v) {} - - int value; - }; - - typedef QHash<QString, Data *> StringCache; - typedef QHash<QScriptDeclarativeClass::Identifier, Data *> IdentifierCache; - + typedef QStringHash<int> StringCache; StringCache stringCache; - IdentifierCache identifierCache; - QDeclarativeEngine *engine; }; -int QDeclarativeIntegerCache::value(const QScriptDeclarativeClass::Identifier &id) const +int QDeclarativeIntegerCache::value(v8::Handle<v8::String> name) { - Data *d = identifierCache.value(id); - return d?d->value:-1; + int *result = stringCache.value(name); + return result?*result:-1; } int QDeclarativeIntegerCache::count() const |