src/corelib/kernel/qmetaobject.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
child 7 f7bc934e204c
--- a/src/corelib/kernel/qmetaobject.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/src/corelib/kernel/qmetaobject.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -574,8 +574,8 @@
     if (i >= 0 && m && m->d.superdata) {
         int conflict = m->d.superdata->indexOfMethod(signal);
         if (conflict >= 0)
-            qWarning("QMetaObject::indexOfSignal:%s: Conflict with %s::%s",
-                     m->d.stringdata, m->d.superdata->d.stringdata, signal);
+            qWarning("QMetaObject::indexOfSignal: signal %s from %s redefined in %s",
+                     signal, m->d.superdata->d.stringdata, m->d.stringdata);
     }
 #endif
     return i;
@@ -2237,7 +2237,10 @@
     // -1 (unchanged): normal qt_metacall, result stored in argv[0]
     // changed: result stored directly in value, return the value of status
     int status = -1;
-    void *argv[] = { 0, &v, &status };
+    // the flags variable is used by the declarative module to implement
+    // interception of property writes.
+    int flags = 0;
+    void *argv[] = { 0, &v, &status, &flags };
     if (t == QVariant::LastType)
         argv[0] = &v;
     else
@@ -2645,6 +2648,7 @@
  */
 int QMetaObjectPrivate::originalClone(const QMetaObject *mobj, int local_method_index)
 {
+    Q_ASSERT(local_method_index < get(mobj)->methodCount);
     int handle = get(mobj)->methodData + 5 * local_method_index;
     while (mobj->d.data[handle + 4] & MethodCloned) {
         Q_ASSERT(local_method_index > 0);