aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4string_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-13 14:11:55 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-18 13:14:03 +0200
commit49aead7f236f8b8a6ab85adc4b5eace1c1e4dde6 (patch)
tree21b01c30b568bd79176a5dfe4ec2437e2545660e /src/qml/jsruntime/qv4string_p.h
parent2a43ec129a544d80c9cc3266b5eccce0f6ba66ef (diff)
Extend the ReturnedValue mechanism to pointers to Managed objects
Add a Returned<T> that we can return instead of raw pointers to Managed objects. Start using the Returned<T> for a few methods. Also clean up all our classes to use the Q_MANAGED macro instead of manually defining their vtable. Change-Id: I0a2962e47f3de955cd2cd8474f8f3fcc9e36d084 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4string_p.h')
-rw-r--r--src/qml/jsruntime/qv4string_p.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4string_p.h b/src/qml/jsruntime/qv4string_p.h
index 3e4ab54cc1..8d9347ac2f 100644
--- a/src/qml/jsruntime/qv4string_p.h
+++ b/src/qml/jsruntime/qv4string_p.h
@@ -52,6 +52,7 @@ struct ExecutionEngine;
struct Identifier;
struct Q_QML_EXPORT String : public Managed {
+ Q_MANAGED
enum StringType {
StringType_Unknown,
StringType_Regular,
@@ -122,6 +123,9 @@ struct Q_QML_EXPORT String : public Managed {
static String *cast(const Value &v) {
return v.asString();
}
+ static Value toValue(String *s) {
+ return Value::fromString(s);
+ }
ReturnedValue asReturnedValue() { return Value::fromString(this).asReturnedValue(); }
@@ -141,8 +145,6 @@ protected:
static bool deleteProperty(Managed *, String *);
static bool deleteIndexedProperty(Managed *m, uint index);
static bool isEqualTo(Managed *that, Managed *o);
-
- static const ManagedVTable static_vtbl;
};
}