Danny Sporea wrote:
I attached a small example where it can be reproduced (if it does not compile, 
just comment out the problem lines with the missing classes or images, as they 
are not important).


Hi, Danny.

I've been able to track down the problem. The only workaround for the bug is unfortunately to use a different type than "long" as the argument type in your signals.

The bug has been fixed for Qt Jambi 4.5.0_01 and I've attached the relevant patches in case you want to apply them to your own source installation.

-- Eskil
==== qtjambi/qtjambi_functions.cpp#47 (text) ====

@@ -270,7 +270,10 @@
         const QMetaObject *mo = o->metaObject();
 
         QString signal_cpp_signature = qtjambi_to_qstring(env, 
reinterpret_cast<jstring>(signalCppSignature));
+
         int mox = 
mo->indexOfSignal(signal_cpp_signature.toLatin1().constData());
+        if (mox < 0)
+            return;
 
         QtJambiTypeManager manager(env);
         QString signal_signature = qtjambi_to_qstring(env, 
reinterpret_cast<jstring>(signalSignature));

==== generator/typesystem_core-java.xml#2 (text) ====

@@ -122,7 +122,7 @@
 
     <primitive-type name="float" jni-name="jfloat"/>
 
-    <primitive-type name="__int64" java-name="long" preferred-conversion="no" 
jni-name="jlong"/>
+    <primitive-type name="__int64" java-name="long" jni-name="jlong"/>
     <primitive-type name="unsigned __int64" java-name="long" 
preferred-conversion="no" jni-name="jlong"/>
     <primitive-type name="unsigned long long" java-name="long" 
preferred-conversion="no" jni-name="jlong"/>
     <primitive-type name="long long" java-name="long" 
preferred-conversion="no" jni-name="jlong"/>
_______________________________________________
Qt-jambi-interest mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

Reply via email to