[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.
- XGDragView bug, Enrico Sersale, 2002/01/19
- Re: XGDragView bug,
Willem Rein Oudshoorn <=