classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cp-patches] FYI: GdkGraphics fix


From: Lillian Angel
Subject: Re: [cp-patches] FYI: GdkGraphics fix
Date: Tue, 22 Nov 2005 09:37:05 -0500

Robert was right about the regex. I have fixed it for now. I will work
on putting the filtering of characters in the native code instead.

2005-11-22  Lillian Angel  <address@hidden>

        * gnu/java/awt/peer/gtk/GdkGraphics.java
        (drawString): Fixed regex.



On Tue, 2005-11-22 at 12:35 +0100, Robert Schuster wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi Lillian,
> this broke text drawing considerably. All the spaces in labels, textfields etc
> are missing now.
> 
> Lillian Angel wrote:
> >> public class GdkGraphics extends Graphics
> >> {
> >>@@ -247,10 +247,13 @@
> >>   native void drawString (GdkFontPeer f, String str, int x, int y);
> >>   public void drawString (String str, int x, int y)
> >>   {
> >>+    // FIXME: Possibly more characters we need to ignore/
> >>+    // Also, implementation may be inefficent because allocating
> >>+    // new Strings.
> 
> The reason for this is here:
> 
> >>+    str = Pattern.compile("[\b | \t | \n | \f | \r | \" | 
> >>\']").matcher(str).replaceAll("");
> 
> I guess you added the spaces to let the regexp look a bit nicer but this
> actually means that the expression will match space characters. The correct
> expression would be: "[\b|\t|\n|\f|\r|\"|\']"
> 
> Apart from that I think Mark is right here. Doing the filtering in C would
> result in better performance. You could implement a special variant of the JNI
> function that makes Java Strings available as C strings and filter unwanted
> characters in it.
> 
> cya
> Robert
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.1 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFDgwKMG9cfwmwwEtoRAuc4AJ9vJz9to+lDFTchIs1qtPTOnwyoggCeJp5d
> dFgnMuaS2/DCWKmYZMCP/Sk=
> =z6rn
> -----END PGP SIGNATURE-----

Attachment: patch.diff
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]