From 76fd89667ebcee148ed2aef6790d5f1632420c5f Mon Sep 17 00:00:00 2001 From: Mark Rowe Date: Mon, 11 May 2026 18:55:03 -0700 Subject: Add static DataRendererContainer::RenderLinesForData This is a replacement for the `DataRenderer::RenderLinesForData` member function as it is impossible to use without leaking memory. --- binaryninjaapi.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 158b1a21..5a8398d2 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -19645,6 +19645,14 @@ namespace BinaryNinja { virtual std::vector GetLinesForData(BinaryView* data, uint64_t addr, Type* type, const std::vector& prefix, size_t width, std::vector>& context, const std::string& language = std::string()); + + /*! Render lines for data using the registered data renderers. + + \deprecated Use \c DataRendererContainer::RenderLinesForData instead. This instance method does not use + any state from the receiving \c DataRenderer; constructing a transient instance just to call it leaks + the underlying core object. + */ + BN_DEPRECATED("Use DataRendererContainer::RenderLinesForData", "DataRendererContainer::RenderLinesForData") std::vector RenderLinesForData(BinaryView* data, uint64_t addr, Type* type, const std::vector& prefix, size_t width, std::vector>& context, const std::string& language = std::string()); @@ -19666,6 +19674,9 @@ namespace BinaryNinja { public: static void RegisterGenericDataRenderer(DataRenderer* renderer); static void RegisterTypeSpecificDataRenderer(DataRenderer* renderer); + static std::vector RenderLinesForData(BinaryView* data, uint64_t addr, Type* type, + const std::vector& prefix, size_t width, + std::vector>& context, const std::string& language = std::string()); }; /*! -- cgit v1.3.1