diff --git a/Userland/Libraries/LibPDF/Document.h b/Userland/Libraries/LibPDF/Document.h index 15305bb0c1..7557f677ea 100644 --- a/Userland/Libraries/LibPDF/Document.h +++ b/Userland/Libraries/LibPDF/Document.h @@ -116,20 +116,7 @@ public: template PDFErrorOr> resolve_to(Value const& value) { - auto resolved = TRY(resolve(value)); - - if constexpr (IsSame) - return resolved.get(); - else if constexpr (IsSame) - return resolved.get(); - else if constexpr (IsSame) - return resolved.get(); - else if constexpr (IsSame) - return resolved.get>(); - else if constexpr (IsObject) - return resolved.get>()->cast(); - - VERIFY_NOT_REACHED(); + return cast_to(TRY(resolve(value))); } private: diff --git a/Userland/Libraries/LibPDF/ObjectDerivatives.h b/Userland/Libraries/LibPDF/ObjectDerivatives.h index 23cbd94b2b..bb5b31a394 100644 --- a/Userland/Libraries/LibPDF/ObjectDerivatives.h +++ b/Userland/Libraries/LibPDF/ObjectDerivatives.h @@ -195,4 +195,20 @@ private: Value m_value; }; +template +UnwrappedValueType cast_to(Value const& value) +{ + if constexpr (IsSame) + return value.get(); + else if constexpr (IsSame) + return value.get(); + else if constexpr (IsSame) + return value.get(); + else if constexpr (IsSame) + return value.get>(); + else if constexpr (IsObject) + return value.get>()->cast(); + VERIFY_NOT_REACHED(); +} + }