-
Michael Stahl yazdı
The problem is that Modify() may be called from ~SwFmt while another thread is waiting on SolarMutex in the ~SwXFrame or derived class destructor, so the ref-count is 0 and the uno::Reference in Modify() will cause a double-free. Since ClientModify() does some re-parenting of listeners, it is at first glance better to call Modify() in this situation (although it is quite possible that it actually doesn't matter), so don't avoid the call in ~SwFrmFmt by adding a SwClient* member there, but put a weak reference to itself into SwXFrame so it can check if it's still alive... Change-Id: I492bb8a8557af5fc725fdb7f8b21013e0886f63b
37ea2c99