[kaffe] CVS kaffe (dalibor): Fixes for Runescape

Kaffe CVS cvs-commits at kaffe.org
Mon Oct 27 08:59:02 PST 2003


PatchSet 4128 
Date: 2003/10/27 16:56:59
Author: dalibor
Branch: HEAD
Tag: (none) 
Log:
Fixes for Runescape

Members: 
	ChangeLog:1.1720->1.1721 
	libraries/javalib/java/awt/ImageLoader.java:1.1->1.2 
	libraries/javalib/kaffe/applet/AppletTag.java:1.4->1.5 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1720 kaffe/ChangeLog:1.1721
--- kaffe/ChangeLog:1.1720	Mon Oct 27 15:44:18 2003
+++ kaffe/ChangeLog	Mon Oct 27 16:56:59 2003
@@ -1,3 +1,17 @@
+2003-10-27  Ross Martin <hacker at ross.interwrx.com>
+
+	* libraries/javalib/java/awt/ImageLoader.java:
+	(imageComplete) Do not start a new ImageFrameLoader
+	for Image streams that an ImageFrameLoader can't
+	handle, but ImageLoader handles fine.
+
+	* libraries/javalib/kaffe/applet/AppletTag.java:
+	(parseParam) Treat ':' and '/' as normal alphabetic
+	characters. This is necessary to get it to treat 
+	"http://xxx.yyy.zzz" as being a single token in its 
+	parser, which is necessary for correct parsing of web
+	addresses. 	
+
 2003-10-27  Dalibor Topic <robilad at kafe.org>
 
 	* libraries/javalib/java/util/jar/Attributes.java,
Index: kaffe/libraries/javalib/java/awt/ImageLoader.java
diff -u kaffe/libraries/javalib/java/awt/ImageLoader.java:1.1 kaffe/libraries/javalib/java/awt/ImageLoader.java:1.2
--- kaffe/libraries/javalib/java/awt/ImageLoader.java:1.1	Thu Feb 20 14:06:07 2003
+++ kaffe/libraries/javalib/java/awt/ImageLoader.java	Mon Oct 27 16:57:01 2003
@@ -45,6 +45,9 @@
 		// give native layer a chance to do alpha channel reduction
 		if ( !(img.producer instanceof ImageNativeProducer) )
 			Toolkit.imgComplete( img.nativeData, status);
+		img.stateChange( s, 0, 0, img.width, img.height);
+		img.producer.removeConsumer( this);	
+		img = null; 	// we are done with it, prevent memory leaks
 	}
 	else if ( status == SINGLEFRAMEDONE ) {
 		s = ImageObserver.FRAMEBITS;
@@ -52,20 +55,26 @@
 		// This is a (indefinite) movie production - move it out of the way (in its own thread)
 		// so that we can go on with useful work. Note that if our producer was a ImageNativeProducer,
 		// the whole external image has been read in already (no IO required, anymore)
-		new ImageFrameLoader( img);
+
+		if ( img.producer instanceof ImageNativeProducer ) {
+		  new ImageFrameLoader( img);
+		  img.stateChange( s, 0, 0, img.width, img.height);
+		  img.producer.removeConsumer( this);	
+		  img = null; 	// we are done with it, prevent memory leaks
+		}
+		else {
+		  img.stateChange( s, 0, 0, img.width, img.height);
+		}
 	}
 	else {
 		if ( (status & IMAGEERROR) != 0 )       s |= ImageObserver.ERROR;
 		if ( (status & IMAGEABORTED) != 0 )     s |= ImageObserver.ABORT;
+		img.stateChange( s, 0, 0, img.width, img.height);
+		img.producer.removeConsumer( this);	
+		img = null; 	// we are done with it, prevent memory leaks
 	}
 
-	img.stateChange( s, 0, 0, img.width, img.height);
 
-	// this has to be called *after* a optional ImageFrameLoader went into action, since
-	// the producer might decide to stop if it doesn't have another consumer
-	img.producer.removeConsumer( this);
-	
-	img = null; 	// we are done with it, prevent memory leaks
 	if ( this == asyncLoader )
 		notify();     // in case we had an async producer
 }
Index: kaffe/libraries/javalib/kaffe/applet/AppletTag.java
diff -u kaffe/libraries/javalib/kaffe/applet/AppletTag.java:1.4 kaffe/libraries/javalib/kaffe/applet/AppletTag.java:1.5
--- kaffe/libraries/javalib/kaffe/applet/AppletTag.java:1.4	Sun Jul 20 13:40:05 2003
+++ kaffe/libraries/javalib/kaffe/applet/AppletTag.java	Mon Oct 27 16:57:02 2003
@@ -260,7 +260,8 @@
     int ttype;
 
     st.lowerCaseMode( true);
-    st.ordinaryChar('/');
+    st.wordChars('/', '/');
+    st.wordChars(':', ':');
 
     while ( (ttype = st.nextToken()) != st.TT_EOF ) {
         if ( ttype == '<' ) {




More information about the kaffe mailing list