[kaffe] CVS kaffe (jserv): Better way to handle Qt AWT backend debugging and update FAQ.awt

Kaffe CVS cvs-commits at kaffe.org
Sun Jul 11 23:44:17 PDT 2004


PatchSet 4952 
Date: 2004/07/12 06:39:49
Author: jserv
Branch: HEAD
Tag: (none) 
Log:
Better way to handle Qt AWT backend debugging and update FAQ.awt

	* libraries/clib/awt/qt/evt.cc:
	Safer way to handler processEvent.

	* libraries/clib/awt/qt/img.cc:
	Add type conversion with threshold.

	* libraries/clib/awt/qt/tlk.cc:
	Implement message handler for Qt AWT backend, and it is more
	convenient to debug or catch some messages from Qt core.

	* FAQ/FAQ.awt:
	Update Qt AWT backend debugging information.

Members: 
	ChangeLog:1.2517->1.2518 
	FAQ/FAQ.awt:1.9->1.10 
	libraries/clib/awt/qt/evt.cc:1.6->1.7 
	libraries/clib/awt/qt/img.cc:1.5->1.6 
	libraries/clib/awt/qt/tlk.cc:1.4->1.5 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2517 kaffe/ChangeLog:1.2518
--- kaffe/ChangeLog:1.2517	Mon Jul 12 05:21:53 2004
+++ kaffe/ChangeLog	Mon Jul 12 06:39:49 2004
@@ -1,5 +1,20 @@
 2004-07-12  Jim Huang  <jserv at kaffe.org>
 
+	* libraries/clib/awt/qt/evt.cc:
+	Safer way to handler processEvent.
+
+	* libraries/clib/awt/qt/img.cc:
+	Add type conversion with threshold.
+
+	* libraries/clib/awt/qt/tlk.cc:
+	Implement message handler for Qt AWT backend, and it is more
+	convenient to debug or catch some messages from Qt core.
+
+	* FAQ/FAQ.awt:
+	Update Qt AWT backend debugging information.
+								       
+2004-07-12  Jim Huang  <jserv at kaffe.org>
+
 	* libraries/javalib/java/awt/ScrollPane.java
 	(ScrollPane): supports GraphicsEnvironment.isHeadless() checks.
 	(addImpl): checks scrollbar type.
Index: kaffe/FAQ/FAQ.awt
diff -u kaffe/FAQ/FAQ.awt:1.9 kaffe/FAQ/FAQ.awt:1.10
--- kaffe/FAQ/FAQ.awt:1.9	Sat Jul 10 02:48:03 2004
+++ kaffe/FAQ/FAQ.awt	Mon Jul 12 06:39:49 2004
@@ -155,6 +155,18 @@
     implementation is still rather rough, so it prints a lot of
     debugging output which confuses the framebuffer, apparently.
 
+  * Qt AWT backend crashes, how can I help?
+
+    Firsr, Qt AWT backend in Kaffe is still buggy, so any feedback 
+    is important to developers for improving. You may attempt to 
+    enable the debug option in Kaffe (configure as --enable-debug 
+    support), and execute a Java AWT application like:
+
+      kaffe -vmdebug AWT -cp <PATH> <CLASSNAME>
+
+    Qt AWT backend will dump debug messages in stderr, and you could
+    redirect to text file. It's sometimes useful for trouble shooting.
+
   Finally, if all else fails, you are on your own. Build kaffe with
   support for debugging, read FAQ/FAQ.debugging and try to figure
   out what's wrong using a debugger. Good luck and please keep in
Index: kaffe/libraries/clib/awt/qt/evt.cc
diff -u kaffe/libraries/clib/awt/qt/evt.cc:1.6 kaffe/libraries/clib/awt/qt/evt.cc:1.7
--- kaffe/libraries/clib/awt/qt/evt.cc:1.6	Sat Jul 10 01:58:25 2004
+++ kaffe/libraries/clib/awt/qt/evt.cc	Mon Jul 12 06:39:48 2004
@@ -522,8 +522,10 @@
     packet=g_event_queue.dequeue();
     event=packet->getEvent();
     index=packet->getIndex();
-    jEvt = processEvent(env, X, event, index);
-    delete event;
+    if (event) {
+      jEvt = processEvent(env, X, event, index);
+      delete event;
+    }
     delete packet;
   }
 
Index: kaffe/libraries/clib/awt/qt/img.cc
diff -u kaffe/libraries/clib/awt/qt/img.cc:1.5 kaffe/libraries/clib/awt/qt/img.cc:1.6
--- kaffe/libraries/clib/awt/qt/img.cc:1.5	Sat Jul 10 01:58:25 2004
+++ kaffe/libraries/clib/awt/qt/img.cc	Mon Jul 12 06:39:48 2004
@@ -91,7 +91,7 @@
 
   if ( !img->alpha ) return 0;
 
-  max = (img->width * img->height) * threshold;
+  max = (img->width * img->height) * (int)threshold;
 
   for ( i=0; i<img->height; i++ ) {
 	for ( j=0; j<img->width; j++ ) {
Index: kaffe/libraries/clib/awt/qt/tlk.cc
diff -u kaffe/libraries/clib/awt/qt/tlk.cc:1.4 kaffe/libraries/clib/awt/qt/tlk.cc:1.5
--- kaffe/libraries/clib/awt/qt/tlk.cc:1.4	Sat Jul 10 01:58:25 2004
+++ kaffe/libraries/clib/awt/qt/tlk.cc	Mon Jul 12 06:39:48 2004
@@ -46,12 +46,29 @@
 }
 
 
+void qtawtMessageOutput(QtMsgType type, const char *msg)
+{
+  switch ( type ) {
+    case QtDebugMsg:
+      fprintf(stderr, "QtAWT: %s\n", msg);
+      break;
+    case QtWarningMsg:
+      fprintf(stderr, "QtAWT - Warning: %s\n", msg);
+      break;
+    case QtFatalMsg:
+      fprintf(stderr, "QtAWT - Fatal: %s\n", msg);
+      abort();		// dump core on purpose
+  }
+}
+
 // tlkInit(System.getProperty( "awt.display")); in Toolkit.java
 jboolean Java_java_awt_Toolkit_tlkInit(JNIEnv* env, jclass clazz,
   jstring name)
 {
   char * argv[1] = { "Qt AWT backend for Kaffe" };
   int argc = 1;           
+
+  qInstallMsgHandler(qtawtMessageOutput);
 
 #ifdef QPE
   qapp = new QPEApplication(argc, argv);




More information about the kaffe mailing list