in src/main/java/org/adoptopenjdk/jitwatch/ui/code/AssemblyTextBuilder.java [59:147]
public void setCurrentMember(IMetaMember member, boolean reload)
{
if (!reload && member == currentMember)
{
return;
}
currentMember = member;
lines.clear();
if (currentMember == null)
{
return;
}
lines.add(new AssemblyLine(member.toString(), null));
Compilation compilation = member.getSelectedCompilation();
if (compilation != null)
{
AssemblyMethod asmMethod = compilation.getAssembly();
if (asmMethod != null)
{
int annoWidth = asmMethod.getMaxAnnotationWidth();
String annoPad = StringUtil.repeat(C_SPACE, annoWidth);
String header = asmMethod.getHeader();
if (header != null)
{
String[] headerLines = header.split(S_NEWLINE);
for (String headerLine : headerLines)
{
lines.add(new AssemblyLine(annoPad + headerLine, null));
}
}
for (AssemblyBlock block : asmMethod.getBlocks())
{
String title = block.getTitle();
if (title != null)
{
lines.add(new AssemblyLine(annoPad + title, null));
}
for (final AssemblyInstruction instr : block.getInstructions())
{
List<String> commentLines = instr.getCommentLines();
if (commentLines.size() == 0)
{
String line = instr.toString(annoWidth, 0, true);
if (!instr.getHexaCode().isEmpty())
{
line = disassembly(line);
}
AssemblyLine assemblyLine = new AssemblyLine(line, instr);
lines.add(assemblyLine);
}
else
{
for (int i = 0; i < commentLines.size(); i++)
{
String line = instr.toString(annoWidth, i, true);
if (!instr.getHexaCode().isEmpty())
{
line = disassembly(line);
}
AssemblyLine assemblyLine = new AssemblyLine(line, instr);
lines.add(assemblyLine);
}
}
}
}
}
else
{
lines.add(new AssemblyLine("No assembly available for this member.", null));
}
}
else
{
lines.add(new AssemblyLine("No compilation selected for this member.", null));
}
}