diff options
| author | Martin Haug <mhaug@live.de> | 2024-09-30 09:53:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-30 07:53:23 +0000 |
| commit | 66147979ba29655bd31417c33dd167ee46d26493 (patch) | |
| tree | 6dee1e665bbaf42c0bcf286b6d68e2f040837864 | |
| parent | 022f34c43a2fb3084b93500163a601105ab582a4 (diff) | |
Do not write empty destination name tree root (#5066)
| -rw-r--r-- | crates/typst-pdf/src/catalog.rs | 17 |
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() { |
