diff options
Diffstat (limited to 'datarenderer.cpp')
| -rw-r--r-- | datarenderer.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/datarenderer.cpp b/datarenderer.cpp index d87183b5..cab10792 100644 --- a/datarenderer.cpp +++ b/datarenderer.cpp @@ -135,7 +135,7 @@ vector<DisassemblyTextLine> DataRenderer::GetLinesForData(BinaryView* data, uint for (size_t i = 0; i < prefix.size(); i++) { BNFreeString(prefixes[i].text); - for (size_t j = 0; j < prefixes[j].namesCount; j++) + for (size_t j = 0; j < prefixes[i].namesCount; j++) BNFreeString(prefixes[i].typeNames[j]); delete[] prefixes[i].typeNames; } @@ -150,6 +150,25 @@ vector<DisassemblyTextLine> DataRenderer::GetLinesForData(BinaryView* data, uint vector<DisassemblyTextLine> DataRenderer::RenderLinesForData(BinaryView* data, uint64_t addr, Type* type, const std::vector<InstructionTextToken>& prefix, size_t width, vector<pair<Type*, size_t>>& context, const string& language) { + return DataRendererContainer::RenderLinesForData(data, addr, type, prefix, width, context, language); +} + + +void DataRendererContainer::RegisterGenericDataRenderer(DataRenderer* renderer) +{ + BNRegisterGenericDataRenderer(BNGetDataRendererContainer(), renderer->GetObject()); +} + + +void DataRendererContainer::RegisterTypeSpecificDataRenderer(DataRenderer* renderer) +{ + BNRegisterTypeSpecificDataRenderer(BNGetDataRendererContainer(), renderer->GetObject()); +} + + +vector<DisassemblyTextLine> DataRendererContainer::RenderLinesForData(BinaryView* data, uint64_t addr, Type* type, + const std::vector<InstructionTextToken>& prefix, size_t width, vector<pair<Type*, size_t>>& context, const string& language) +{ BNInstructionTextToken* prefixes = InstructionTextToken::CreateInstructionTextTokenList(prefix); BNTypeContext* typeCtx = new BNTypeContext[context.size()]; for (size_t i = 0; i < context.size(); i++) @@ -166,7 +185,7 @@ vector<DisassemblyTextLine> DataRenderer::RenderLinesForData(BinaryView* data, u for (size_t i = 0; i < prefix.size(); i++) { BNFreeString(prefixes[i].text); - for (size_t j = 0; j < prefixes[j].namesCount; j++) + for (size_t j = 0; j < prefixes[i].namesCount; j++) BNFreeString(prefixes[i].typeNames[j]); delete[] prefixes[i].typeNames; } @@ -176,15 +195,3 @@ vector<DisassemblyTextLine> DataRenderer::RenderLinesForData(BinaryView* data, u BNFreeDisassemblyTextLines(lines, count); return result; } - - -void DataRendererContainer::RegisterGenericDataRenderer(DataRenderer* renderer) -{ - BNRegisterGenericDataRenderer(BNGetDataRendererContainer(), renderer->GetObject()); -} - - -void DataRendererContainer::RegisterTypeSpecificDataRenderer(DataRenderer* renderer) -{ - BNRegisterTypeSpecificDataRenderer(BNGetDataRendererContainer(), renderer->GetObject()); -} |
