Enrico Sersale <[EMAIL PROTECTED]> 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.




_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to