aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/qml/v4/qv4object.cpp1
-rw-r--r--src/qml/qml/v4/qv4sequenceobject_p.h3
-rw-r--r--src/qml/qml/v4/qv4string_p.h2
-rw-r--r--src/qml/qml/v4/qv4variantobject_p.h1
-rw-r--r--src/qml/qml/v4/v4.pri5
-rwxr-xr-xsrc/qml/qml/v4/v4classgen14
-rw-r--r--src/qml/qml/v8/qv8engine.cpp2
-rw-r--r--src/qml/qml/v8/qv8engine_p.h2
-rw-r--r--src/quick/items/items.pri2
-rw-r--r--src/quick/quick.pro3
10 files changed, 19 insertions, 16 deletions
diff --git a/src/qml/qml/v4/qv4object.cpp b/src/qml/qml/v4/qv4object.cpp
index d5c77166ee..07eaec26ea 100644
--- a/src/qml/qml/v4/qv4object.cpp
+++ b/src/qml/qml/v4/qv4object.cpp
@@ -61,6 +61,7 @@
#include <cassert>
#include <typeinfo>
#include <iostream>
+#include <stdint.h>
#include "qv4alloca_p.h"
using namespace QV4;
diff --git a/src/qml/qml/v4/qv4sequenceobject_p.h b/src/qml/qml/v4/qv4sequenceobject_p.h
index 7731f07d7c..0461c296e7 100644
--- a/src/qml/qml/v4/qv4sequenceobject_p.h
+++ b/src/qml/qml/v4/qv4sequenceobject_p.h
@@ -77,9 +77,8 @@ public:
QV4::Value method_set_length(QV4::SimpleCallContext* ctx);
};
-class QV4_JS_CLASS(SequencePrototype) : public QV4::Object
+struct QV4_JS_CLASS(SequencePrototype) : public QV4::Object
{
-public:
SequencePrototype(QV4::ExecutionEngine *engine);
void initClass(QV4::ExecutionEngine *engine);
diff --git a/src/qml/qml/v4/qv4string_p.h b/src/qml/qml/v4/qv4string_p.h
index e33c4d81e9..30bef99ae5 100644
--- a/src/qml/qml/v4/qv4string_p.h
+++ b/src/qml/qml/v4/qv4string_p.h
@@ -50,7 +50,7 @@ namespace QV4 {
struct ExecutionEngine;
-struct String : public Managed {
+struct Q_QML_EXPORT String : public Managed {
enum StringType {
StringType_Unknown,
StringType_Regular,
diff --git a/src/qml/qml/v4/qv4variantobject_p.h b/src/qml/qml/v4/qv4variantobject_p.h
index d1b18d3420..085d06bf96 100644
--- a/src/qml/qml/v4/qv4variantobject_p.h
+++ b/src/qml/qml/v4/qv4variantobject_p.h
@@ -68,7 +68,6 @@ struct VariantObject : Object, public ExecutionEngine::ScarceResourceData
{
public:
VariantObject(ExecutionEngine *engine, const QVariant &value);
- ~VariantObject();
static QVariant toVariant(const QV4::Value &v);
diff --git a/src/qml/qml/v4/v4.pri b/src/qml/qml/v4/v4.pri
index 15f41d6f10..ccfb723f8f 100644
--- a/src/qml/qml/v4/v4.pri
+++ b/src/qml/qml/v4/v4.pri
@@ -101,6 +101,9 @@ HEADERS += \
$$PWD/qv4executableallocator_p.h \
$$PWD/qv4sequenceobject_p.h
+OTHER_FILES += \
+ $$PWD/v4classgen
+
JS_CLASS_SOURCES += $$PWD/qv4dateobject_p.h \
$$PWD/qv4stringobject_p.h \
$$PWD/qv4booleanobject_p.h \
@@ -111,7 +114,7 @@ JS_CLASS_SOURCES += $$PWD/qv4dateobject_p.h \
js_class_bindings.output = ${QMAKE_FILE_BASE}_jsclass.cpp
js_class_bindings.input = JS_CLASS_SOURCES
js_class_bindings.script = $$PWD/v4classgen
-js_class_bindings.commands = python $$js_class_bindings.script ${QMAKE_FILE_IN} --output ${QMAKE_FILE_OUT}
+js_class_bindings.commands = python $$js_class_bindings.script ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
js_class_bindings.depends += $$js_class_bindings.script $$PWD/qv4managed_p.h
js_class_bindings.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += js_class_bindings
diff --git a/src/qml/qml/v4/v4classgen b/src/qml/qml/v4/v4classgen
index e5000ea83e..8726717475 100755
--- a/src/qml/qml/v4/v4classgen
+++ b/src/qml/qml/v4/v4classgen
@@ -1,7 +1,6 @@
#!/usr/bin/python
import re, sys, os
-import argparse
class ParsedMethod():
def __init__(self, name, methodPrefix, static):
@@ -308,21 +307,20 @@ def extractManagedVTableLayout(basePath):
sys.exit(1)
return fields
-parser = argparse.ArgumentParser(description="Generate V4 JS class bindings")
-parser.add_argument("input")
-parser.add_argument("--output")
-options = parser.parse_args()
+if len(sys.argv) != 3 and len(sys.argv) != 2:
+ print("Usage: v4classgen input-file [output-file]\n")
+ sys.exit(1)
vtableEntries = extractManagedVTableLayout(os.path.dirname(__file__))
if len(vtableEntries) == 0:
print("Could not parse vtable layout from qv4managed_p.h")
sys.exit(1)
-f = open(options.input)
+f = open(sys.argv[1])
out = sys.stdout
-if options.output != None:
- out = open(options.output, 'w')
+if len(sys.argv) == 3:
+ out = open(sys.argv[2], 'w')
lines = f.read().splitlines()
classes = parse(lines)
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
index 5862faf807..b6431b7fad 100644
--- a/src/qml/qml/v8/qv8engine.cpp
+++ b/src/qml/qml/v8/qv8engine.cpp
@@ -672,7 +672,7 @@ void QV8Engine::initializeGlobal(v8::Handle<v8::Object> global)
" }"\
"})"
- QV4::Value result = evaluateScript(QStringLiteral(FREEZE_SOURCE), 0);
+ QV4::Value result = evaluateScript(QString::fromUtf8(FREEZE_SOURCE), 0);
Q_ASSERT(result.asFunctionObject());
m_freezeObject = result;
#undef FREEZE_SOURCE
diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h
index eda6850105..abd5b71b94 100644
--- a/src/qml/qml/v8/qv8engine_p.h
+++ b/src/qml/qml/v8/qv8engine_p.h
@@ -105,7 +105,7 @@ namespace QV4 {
}
#define V4THROW_ERROR(string) \
- v8::Isolate::GetEngine()->current->throwError(QStringLiteral(string));
+ v8::Isolate::GetEngine()->current->throwError(QString::fromUtf8(string));
#define V8THROW_TYPE(string) { \
v8::ThrowException(v8::Exception::TypeError(v8::String::New(string))); \
diff --git a/src/quick/items/items.pri b/src/quick/items/items.pri
index 93e56830a7..d1a8effaf3 100644
--- a/src/quick/items/items.pri
+++ b/src/quick/items/items.pri
@@ -141,7 +141,7 @@ V4DIR = $$PWD/../../qml/qml/v4
js_class_bindings.output = ${QMAKE_FILE_BASE}_jsclass.cpp
js_class_bindings.input = JS_CLASS_SOURCES
js_class_bindings.script = $$V4DIR/v4classgen
-js_class_bindings.commands = python $$js_class_bindings.script ${QMAKE_FILE_IN} --output ${QMAKE_FILE_OUT}
+js_class_bindings.commands = python $$js_class_bindings.script ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
js_class_bindings.depends += $$js_class_bindings.script $$V4DIR/qv4managed_p.h
js_class_bindings.CONFIG += no_link
QMAKE_EXTRA_COMPILERS += js_class_bindings
diff --git a/src/quick/quick.pro b/src/quick/quick.pro
index b584734a83..393fe34e89 100644
--- a/src/quick/quick.pro
+++ b/src/quick/quick.pro
@@ -31,6 +31,9 @@ HEADERS += \
SOURCES += qtquick2.cpp
+# To make #include "qquickcontext2d_jsclass.cpp" work
+INCLUDEPATH += $$PWD
+
mac {
# FIXME: this is a workaround for broken qmake logic in qtAddModule()
# This function refuses to use frameworks unless the framework exists on