From 66147979ba29655bd31417c33dd167ee46d26493 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Mon, 30 Sep 2024 09:53:23 +0200 Subject: [PATCH] Do not write empty destination name tree root (#5066) --- crates/typst-pdf/src/catalog.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/crates/typst-pdf/src/catalog.rs b/crates/typst-pdf/src/catalog.rs index 8f3253eee..2870918f5 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() {