Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Modify JS Object to QVariant conversion
Previously, JS Objects would be converted to a QVariantMap where each value in the map was a QVariant from toVariant(propertyValue). Unfortunately, this would result in a crash if the object had a reference to another object which had a reference to the original object, due to the circular reference. This commit changes the conversion code to use QV8Engine::variantMapFromJS() instead, which avoids cyclic references. Task-number: QTBUG-21626 Change-Id: I129048c8704ae0d1095a02d0ce4c0fe5850b1b20 Reviewed-on: http://codereview.qt-project.org/5490 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
- Loading branch information
Chris Adams
authored and
Qt by Nokia
committed
Sep 30, 2011
1 parent
54c1fa8
commit 20fb62f
Showing
3 changed files
with
33 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 16 additions & 0 deletions
16
tests/auto/declarative/qdeclarativeecmascript/data/objectConversion.qml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import QtQuick 2.0 | ||
|
||
Rectangle { | ||
width: 360 | ||
height: 360 | ||
|
||
function circularObject() { | ||
var a = {} | ||
var b = {} | ||
|
||
a.test = 100; | ||
a.c = b; | ||
b.c = a; | ||
return a; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters