diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-04-10 15:29:11 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2022-04-10 22:52:57 +0200 |
commit | 5525c9312420cf002aef78fa1d52219724d3fc20 (patch) | |
tree | 4a3436dc380081500cd58a8f041e20cecec9ff6f /README-maintainer | |
parent | 90cfe80bacdd0d398631afce76c4182e08cc78b9 (diff) | |
download | qpdf-5525c9312420cf002aef78fa1d52219724d3fc20.tar.zst |
Use QPDF_DLL_CLASS with Pipeline and InputSource subclasses
This enables RTTI so we can use dynamic_cast on them across the shared
object boundary.
Diffstat (limited to 'README-maintainer')
-rw-r--r-- | README-maintainer | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/README-maintainer b/README-maintainer index 60e7de57..52c10810 100644 --- a/README-maintainer +++ b/README-maintainer @@ -156,9 +156,14 @@ CODING RULES * Use QPDF_DLL on all methods that are to be exported in the shared library/DLL. Use QPDF_DLL_CLASS for all classes whose type - information is needed. This is important for exception classes and - it seems also for classes that are intended to be subclassed across - the shared library boundary. + information is needed. This is important for classes that are used + as exceptions, subclassed, or tested with dynamic_cast across the + the shared object boundary (or "shared library boundary" -- we may + use either term in comments and documentation). In particular, + anything new derived from Pipeline or InputSource should be marked + with QPDF_DLL_CLASS, but we don't need to do it for QPDFObjectHelper + or QPDFDocumentHelper subclasses since there's no reason to use + dynamic_cast with those. * Put private member variables in std::shared_ptr<Members> for all public classes. Remember to use QPDF_DLL on ~Members(). Exception: |