> If I read correctly your patch, it is a problem of non disconnected > signal so it is related. When you reset the smart pointer, you will in > effect call the destructor.
As far as I can tell, the destructor of CacheItem is *not* called when cache_item_.reset() is called. When I save sc_ and disconnect sc_ in CacheItem::Impl, the crash persists. This may be because this cached_item_ is referred by both original and copied GraphicInset. Therefore, the disconnection should be done in GraphicLoader, NOT CachedItem, and no destructor is involved. Cheers, Bo