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

RE: [XaraXtreme-dev] File => Close crashes

In message <7ce8d9124e.martin@xxxxxxxxxxxxxxxxxxx>
          Martin Wuerthner <lists@xxxxxxxxxxxxxxx> wrote:

> [crashes on File => Close]

Further information to provoke the problem: Here, the crash always 
occurs when having two or more documents loaded and removing one of 
them using File => Close.

> The crash is caused by the text tool trying to remove the blobs from
> the non-existing window in TextInfoBarOp::Message. When it gets a view
> change message it calls GetVisibleSpread() on the old view. I presume
> the IsScreenCamView() call that was removed (see the portnote in line
> 2602) was meant to prevent the problem. Somehow we need a way to
> distinguish between a dead old view and a live old view. Apparently,
> testing oOldView against NULL does not do that.

The call to GetClientSize that leads to the crash occurs in various 
places in the code when processing DocViewMsg(SELABOUTTOCHANGE), which 
is broadcast by SetSelectedViewAndSpread when one of the files is 
closed. Usually, the text tool is the first to crash (by the way, it 
responds to the message even when not being the current tool, surely 
that is wrong anyway?), but the same problem exists in other places, 
too, e.g., BlobManager::Message when there are selected objects on the 
view that is deleted.