-
Before: - RingMainWindow has an unique_ptr to an AccountContainer accountContainer_. - each view / secondary class has its own *copy* of the account container pointer (given by ringmainwindow using accountContainer_.get()). - each time the reference to the struct Info is updated, accountContainer_ has to be reset()-ed and and the account container re-created by the RingMainWindow. This makes *all* copies of the account container pointer invalid (hence all view / secondary classes trying to access the account container before getting updated perform use-after-free / NULL pointer dereference). - These copies have to be manually updated ! (well, currently they are not updated at all) After: - RingMainWindow has a pointer to a struct Info from LRC. - Each view / secondary class has a pointer pointing to the struct Info pointer of RingMainWindow - Each time the reference to the struct Info is updated, the RingMainWindow updates its pointer. Since secondary classes and views hold a pointer to this pointer, they are automatically updated and there is no dangling pointer anymore. This requires no lrc side changes. Change-Id: I1329721920a3d42ad623f9fd7202b43700713eed Reviewed-by: Sebastien Blin <sebastien.blin@savoirfairelinux.com> Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
6f2ceb12