MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / GetLinesForData

Method GetLinesForData

datarenderer.cpp:120–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118
119
120vector<DisassemblyTextLine> DataRenderer::GetLinesForData(BinaryView* data, uint64_t addr, Type* type,
121 const std::vector<InstructionTextToken>& prefix, size_t width, vector<pair<Type*, size_t>>& context, const string& language)
122{
123 BNInstructionTextToken* prefixes = InstructionTextToken::CreateInstructionTextTokenList(prefix);
124 BNTypeContext* typeCtx = new BNTypeContext[context.size()];
125 for (size_t i = 0; i < context.size(); i++)
126 {
127 typeCtx[i].type = context[i].first->GetObject();
128 typeCtx[i].offset = context[i].second;
129 }
130 size_t count = 0;
131 BNDisassemblyTextLine* lines = BNGetLinesForData(m_object, data->GetObject(), addr, type->GetObject(), prefixes,
132 prefix.size(), width, &count, typeCtx, context.size(), language.c_str());
133
134 delete[] typeCtx;
135 for (size_t i = 0; i < prefix.size(); i++)
136 {
137 BNFreeString(prefixes[i].text);
138 for (size_t j = 0; j < prefixes[j].namesCount; j++)
139 BNFreeString(prefixes[i].typeNames[j]);
140 delete[] prefixes[i].typeNames;
141 }
142 delete[] prefixes;
143
144 vector<DisassemblyTextLine> result = ParseAPIObjectList<DisassemblyTextLine>(lines, count);
145 BNFreeDisassemblyTextLines(lines, count);
146 return result;
147}
148
149
150vector<DisassemblyTextLine> DataRenderer::RenderLinesForData(BinaryView* data, uint64_t addr, Type* type,

Callers 1

Calls 3

c_strMethod · 0.80
sizeMethod · 0.45
GetObjectMethod · 0.45

Tested by

no test coverage detected