diff options
-rw-r--r-- | src/qml/qml/qqmllocale.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/qml/qml/qqmllocale.cpp b/src/qml/qml/qqmllocale.cpp index b54df90dd1..770a0017f1 100644 --- a/src/qml/qml/qqmllocale.cpp +++ b/src/qml/qml/qqmllocale.cpp @@ -624,7 +624,7 @@ public: QV8LocaleDataDeletable(QV8Engine *engine); ~QV8LocaleDataDeletable(); - v8::Persistent<v8::Function> constructor; + QV4::PersistentValue constructor; }; QV8LocaleDataDeletable::QV8LocaleDataDeletable(QV8Engine *engine) @@ -662,12 +662,11 @@ QV8LocaleDataDeletable::QV8LocaleDataDeletable(QV8Engine *engine) ft->PrototypeTemplate()->SetAccessor(v8::String::New("textDirection"), locale_get_textDirection); ft->PrototypeTemplate()->SetAccessor(v8::String::New("uiLanguages"), locale_get_uiLanguages); - constructor = qPersistentNew(ft->GetFunction()); + constructor = ft->GetFunction()->v4Value(); } QV8LocaleDataDeletable::~QV8LocaleDataDeletable() { - qPersistentDispose(constructor); } V8_DEFINE_EXTENSION(QV8LocaleDataDeletable, localeV8Data); @@ -777,7 +776,7 @@ QQmlLocale::~QQmlLocale() QV4::Value QQmlLocale::locale(QV8Engine *v8engine, const QString &locale) { QV8LocaleDataDeletable *d = localeV8Data(v8engine); - v8::Handle<v8::Object> v8Value = d->constructor->NewInstance(); + v8::Handle<v8::Object> v8Value = d->constructor.value().asFunctionObject()->newInstance(); QV8LocaleDataResource *r = new QV8LocaleDataResource(v8engine); if (locale.isEmpty()) r->locale = QLocale(); |