qt/qt-everywhere-opensource-sr...

32 lines
1.4 KiB
Diff

Parent: e17dddfd (Make hierarchy of actions in menubars more consistent.)
Author: David E. Narváez <david.narvaez@computer.org>
AuthorDate: 2013-02-03 23:07:07 -0500
Commit: David E. Narváez <david.narvaez@computer.org>
CommitDate: 2013-02-09 16:30:41 -0500
Fix call to QMetaObject::metaCall from updateProperty
Create an array of arguments in the same way
QMetaObject::write does
Task-number: QTBUG-29082
Change-Id: I4ea5ab5dcd6b55cf0a127b855b5aac27a9d4a305
diff --git a/src/corelib/animation/qpropertyanimation.cpp b/src/corelib/animation/qpropertyanimation.cpp
index dcf779a..9869d7e 100644
--- a/src/corelib/animation/qpropertyanimation.cpp
+++ b/src/corelib/animation/qpropertyanimation.cpp
@@ -136,8 +136,11 @@
if (newValue.userType() == propertyType) {
//no conversion is needed, we directly call the QMetaObject::metacall
- void *data = const_cast<void*>(newValue.constData());
- QMetaObject::metacall(targetValue, QMetaObject::WriteProperty, propertyIndex, &data);
+ //check QMetaProperty::write for an explanation of these
+ int status = -1;
+ int flags = 0;
+ void *argv[] = { const_cast<void *>(newValue.constData()), const_cast<QVariant *>(&newValue) , &status, &flags };
+ QMetaObject::metacall(targetValue, QMetaObject::WriteProperty, propertyIndex, argv);
} else {
targetValue->setProperty(propertyName.constData(), newValue);
}