Commit 8ad773dea58f7db312094e88f4fb26bbf6861605
Merge remote-tracking branch 'mh/design' into work
Showing
1 changed file
with
13 additions
and
1 deletions
manual/design.rst
| @@ -340,7 +340,7 @@ qpdf Object Internals | @@ -340,7 +340,7 @@ qpdf Object Internals | ||
| 340 | --------------------- | 340 | --------------------- |
| 341 | 341 | ||
| 342 | The internals of ``QPDFObjectHandle`` and how qpdf stores objects were | 342 | The internals of ``QPDFObjectHandle`` and how qpdf stores objects were |
| 343 | -significantly rewritten for qpdf 11. Here are some additional details. | 343 | +significantly rewritten for qpdf 11 and 12. Here are some additional details. |
| 344 | 344 | ||
| 345 | Object Internals | 345 | Object Internals |
| 346 | ~~~~~~~~~~~~~~~~ | 346 | ~~~~~~~~~~~~~~~~ |
| @@ -356,6 +356,9 @@ any changes are reflected. | @@ -356,6 +356,9 @@ any changes are reflected. | ||
| 356 | Objects in qpdf 11 and Newer | 356 | Objects in qpdf 11 and Newer |
| 357 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 357 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 358 | 358 | ||
| 359 | +qpdf 11 | ||
| 360 | +....... | ||
| 361 | + | ||
| 359 | The object cache in ``QPDF`` contains a shared pointer to | 362 | The object cache in ``QPDF`` contains a shared pointer to |
| 360 | ``QPDFObject``. Any ``QPDFObjectHandle`` resolved from an indirect | 363 | ``QPDFObject``. Any ``QPDFObjectHandle`` resolved from an indirect |
| 361 | reference to that object has a copy of that shared pointer. Each | 364 | reference to that object has a copy of that shared pointer. Each |
| @@ -391,6 +394,15 @@ operation also has the effect of breaking any circular references | @@ -391,6 +394,15 @@ operation also has the effect of breaking any circular references | ||
| 391 | specification), thus preventing memory leaks when ``QPDF`` objects are | 394 | specification), thus preventing memory leaks when ``QPDF`` objects are |
| 392 | destroyed. | 395 | destroyed. |
| 393 | 396 | ||
| 397 | +qpdf 12 | ||
| 398 | +....... | ||
| 399 | + | ||
| 400 | +In qpdf 12, the shared pointer to a ``QPDFValue`` contained in each | ||
| 401 | +``QPDFObject`` was replaced with a ``std::variant``. The base class | ||
| 402 | +``QPDFValue`` was merged into ``QPDFObject``, and its sub-classes | ||
| 403 | +became independent classes. | ||
| 404 | + | ||
| 405 | + | ||
| 394 | Objects prior to qpdf 11 | 406 | Objects prior to qpdf 11 |
| 395 | ~~~~~~~~~~~~~~~~~~~~~~~~ | 407 | ~~~~~~~~~~~~~~~~~~~~~~~~ |
| 396 | 408 |