aboutsummaryrefslogtreecommitdiffstats
path: root/README-maintainer
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-04-10 15:29:11 +0200
committerJay Berkenbilt <ejb@ql.org>2022-04-10 22:52:57 +0200
commit5525c9312420cf002aef78fa1d52219724d3fc20 (patch)
tree4a3436dc380081500cd58a8f041e20cecec9ff6f /README-maintainer
parent90cfe80bacdd0d398631afce76c4182e08cc78b9 (diff)
downloadqpdf-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-maintainer11
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: