From db9fa7ff0734426250e3ca7adffbe7da64bbe63e Mon Sep 17 00:00:00 2001 From: Rodrigo Tobar Date: Sun, 29 Jan 2023 10:57:21 +0800 Subject: [PATCH] LibPDF: Allow show_text to return errors Errors can (and do) occur when trying to render text, and so far we've silently ignored them, making us think that all is well when it isn't. Letting show_text return errors will allow us to inform the user about these errors instead of having to hiding them. --- Userland/Libraries/LibPDF/Renderer.cpp | 7 ++++--- Userland/Libraries/LibPDF/Renderer.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibPDF/Renderer.cpp b/Userland/Libraries/LibPDF/Renderer.cpp index 3c31ed6b03..91b93ed0de 100644 --- a/Userland/Libraries/LibPDF/Renderer.cpp +++ b/Userland/Libraries/LibPDF/Renderer.cpp @@ -483,7 +483,7 @@ RENDERER_HANDLER(text_next_line) RENDERER_HANDLER(text_show_string) { auto text = MUST(m_document->resolve_to(args[0]))->string(); - show_text(text); + TRY(show_text(text)); return {}; } @@ -510,7 +510,7 @@ RENDERER_HANDLER(text_show_string_array) auto shift = next_shift / 1000.0f; m_text_matrix.translate(-shift * text_state().font_size * text_state().horizontal_scaling, 0.0f); auto str = element.get>()->cast()->string(); - show_text(str); + TRY(show_text(str)); } } @@ -724,7 +724,7 @@ PDFErrorOr Renderer::set_graphics_state_from_dict(NonnullRefPtr Renderer::show_text(DeprecatedString const& string) { auto& text_rendering_matrix = calculate_text_rendering_matrix(); @@ -748,6 +748,7 @@ void Renderer::show_text(DeprecatedString const& string) auto delta_x = glyph_position.x() - original_position.x(); m_text_rendering_matrix_is_dirty = true; m_text_matrix.translate(delta_x / text_rendering_matrix.x_scale(), 0.0f); + return {}; } PDFErrorOr> Renderer::load_image(NonnullRefPtr image) diff --git a/Userland/Libraries/LibPDF/Renderer.h b/Userland/Libraries/LibPDF/Renderer.h index ccf2f9be73..fb92551ead 100644 --- a/Userland/Libraries/LibPDF/Renderer.h +++ b/Userland/Libraries/LibPDF/Renderer.h @@ -114,7 +114,7 @@ private: void begin_path_paint(); void end_path_paint(); PDFErrorOr set_graphics_state_from_dict(NonnullRefPtr); - void show_text(DeprecatedString const&); + PDFErrorOr show_text(DeprecatedString const&); PDFErrorOr> load_image(NonnullRefPtr); PDFErrorOr show_image(NonnullRefPtr); void show_empty_image(int width, int height);