bug-gnustep
[Top][All Lists]
Advanced

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

Re: XGDragView bug


From: Willem Rein Oudshoorn
Subject: Re: XGDragView bug
Date: 20 Jan 2002 11:48:52 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

Enrico Sersale <enrico@www.imago.ro> writes:

> The GWorkspace and CVS versions are the same.
> 
> It happens if you start a drag and move the icon only a bit, remaining
> into its bounds.
> 
> At the next drag with an other icon, the app will crash.

Ok, I am able to reproduce it, but for me it is not as simple
as it seemed.  I have to:
1 - Move icon A from Shelf to Finder
2 - Move icon A a little on the Finder shelf, so it disappears
3 - Repeat step 1
4 - Notice: CRASH as soon as the icon A enters the Finder.

Also I spend some time debugging this.  I have not nailed it yet,
and it is not clear exactly which part is at fault.  It can be:

- GWorkspace
- the pasteboard
- the DnD code

But let me describe what I have found so far.  

A - the DnD code references an deallocated object.
B - the deallocated object is a FinderShelfIcon
C - the FinderShelfIcon is deallocated when you start
    dragging in step 3
D - the dealloc is triggered by the following method
      -[ShelfIcon declareAndSetShapeOnPasteboard:]
    especially the following line:
      [pb declareTypes: owner:]
    This registers a new object on the PasteBoard server
    and this triggers the release of object that was
    stored in step 1.

So basically, the Icon dragged in step 1  is kept alive
until the second drag because it is still retained by
the NSPasteBoard.  

Now I hope that you can say: `Of course, ...' 
and it is a bug in the GWorkspacce.

However,  if not.  Do you have any idea what the last
CVS version of GNUstep is that does not have these 
problems?

Wim Oudshoonr.






reply via email to

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