summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Haug <mhaug@live.de>2024-09-30 09:53:23 +0200
committerGitHub <noreply@github.com>2024-09-30 07:53:23 +0000
commit66147979ba29655bd31417c33dd167ee46d26493 (patch)
tree6dee1e665bbaf42c0bcf286b6d68e2f040837864
parent022f34c43a2fb3084b93500163a601105ab582a4 (diff)
Do not write empty destination name tree root (#5066)
-rw-r--r--crates/typst-pdf/src/catalog.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/crates/typst-pdf/src/catalog.rs b/crates/typst-pdf/src/catalog.rs
index 8f3253ee..2870918f 100644
--- a/crates/typst-pdf/src/catalog.rs
+++ b/crates/typst-pdf/src/catalog.rs
@@ -139,16 +139,15 @@ pub fn write_catalog(
catalog.viewer_preferences().direction(dir);
catalog.metadata(meta_ref);
- // Write the named destination tree.
- let mut name_dict = catalog.names();
- let mut dests_name_tree = name_dict.destinations();
- let mut names = dests_name_tree.names();
- for &(name, dest_ref, ..) in &ctx.references.named_destinations.dests {
- names.insert(Str(name.as_str().as_bytes()), dest_ref);
+ // Write the named destination tree if there are any entries.
+ if !ctx.references.named_destinations.dests.is_empty() {
+ let mut name_dict = catalog.names();
+ let mut dests_name_tree = name_dict.destinations();
+ let mut names = dests_name_tree.names();
+ for &(name, dest_ref, ..) in &ctx.references.named_destinations.dests {
+ names.insert(Str(name.as_str().as_bytes()), dest_ref);
+ }
}
- names.finish();
- dests_name_tree.finish();
- name_dict.finish();
// Insert the page labels.
if !page_labels.is_empty() {