diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-04-09 22:39:14 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-04-09 23:33:29 +0200 |
commit | c7e877b88b7e0c9a4608e16df777ded5dd8f6593 (patch) | |
tree | c5c9330369eb844d563038c767348888c7ad5c75 /README-maintainer | |
parent | ef2b84c6c3af434882a192f2122e2dee3fbe5499 (diff) | |
download | qpdf-c7e877b88b7e0c9a4608e16df777ded5dd8f6593.tar.zst |
Update documentation for PointerHolder transition
Diffstat (limited to 'README-maintainer')
-rw-r--r-- | README-maintainer | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/README-maintainer b/README-maintainer index 9f597d35..60e7de57 100644 --- a/README-maintainer +++ b/README-maintainer @@ -160,11 +160,16 @@ CODING RULES it seems also for classes that are intended to be subclassed across the shared library boundary. -* Put private member variables in PointerHolder<Members> for all +* Put private member variables in std::shared_ptr<Members> for all public classes. Remember to use QPDF_DLL on ~Members(). Exception: - indirection through PointerHolder<Members> is expensive, so don't do - it for classes that are copied a lot, like QPDFObjectHandle and - QPDFObject. + indirection through std::shared_ptr<Members> is expensive, so don't + do it for classes that are copied a lot, like QPDFObjectHandle and + QPDFObject. It may be possible to declare + std::shared_ptr<Members> m_ph; + Member* m; + with m = m_ph.get(), and then indirect through m in + performance-critical settings, though in 2022, std::shared_ptr is + sufficiently performant that this may not be worth it. * Traversal of objects is expensive. It's worth adding some complexity to avoid needless traversals of objects. |