[Top][All Lists]

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

[Bug awt/27917] Massive memory leak in Graphics2D image operations

From: mark at gcc dot gnu dot org
Subject: [Bug awt/27917] Massive memory leak in Graphics2D image operations
Date: 11 Jun 2006 22:05:47 -0000

------- Comment #10 from mark at gcc dot gnu dot org  2006-06-11 22:05 -------
(In reply to comment #9)
> > This seems to be a deadlock happening when the HideCursorManager sets the
> > cursor  at some inconvenient time. I haven't debugged it fully yet. 
> Good catch! This sounds very possible. When I tried gdb on this, I just got
> lots of waiting threads, but didn't notice any of the cursor hiding stuff.
> I hope that get/setCursor is considered a thread-safe AWT operation. Using
> SwingUtilities.invokeLater would probably not help, or would it?

Actually it wasn't the setCursor() call, it was just triggered by the
HideCursorManager in combination with creating thumbnails which were using the
GdkPixbugWriter which had some buggy gdk lock code. Hopefully all this has been
fixed with the following patch:

2006-06-11  Mark Wielaard  <address@hidden>

       * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (streamImage):
       Takes GdkPixbufWriter.
       (GdkPixbufWriter): Implements Runnable.
       (write(IIOMetadata,IIOImage,ImageWriteParam)): Start Thread for
       data processing.
       (DATADONE): New static final field.
       (data): New field.
       (write(byte[])): New method.
       (run): Likewise.
       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
       Get dataOutputWriteID from writeClass.
       (stream_save_request): Change stream field to writer.
       (save_to_stream): Remove FIXME, call writer.
       Store writer.

If you are still seeing deadlock then please open a new bug report for that.

BTW. It seems there are also some new drawing misfeatures in the latest CVS
code. But these also deserve their own new bug report. Probably caused by the
switch the VolatileImage for the swing backbuffer.


mark at gcc dot gnu dot org changed:

           What    |Removed                     |Added
                 CC|                            |roman at kennke dot org


reply via email to

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