From 175c0153e98b08c8ec184064c96e284c56d2c5f6 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Mon, 16 Jun 2025 18:45:41 -0400 Subject: [PATCH] GP-3756 - Fixed plate comment annotation rendering bug in tooltip --- .../viewer/field/EolCommentFieldFactory.java | 1 - .../util/viewer/field/PlateFieldFactory.java | 30 +++++++------------ 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/EolCommentFieldFactory.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/EolCommentFieldFactory.java index fa6f4ae3de..1370f3b2a2 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/EolCommentFieldFactory.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/EolCommentFieldFactory.java @@ -64,7 +64,6 @@ public class EolCommentFieldFactory extends FieldFactory { private int repeatableCommentStyle; private int automaticCommentStyle; private int refRepeatableCommentStyle; - private int offcutCommentStyle; private EolExtraCommentsOption extraCommentsOption = new EolExtraCommentsOption(); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/PlateFieldFactory.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/PlateFieldFactory.java index a8fb997b50..a33ddb1582 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/PlateFieldFactory.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/PlateFieldFactory.java @@ -17,8 +17,9 @@ package ghidra.app.util.viewer.field; import java.awt.Color; import java.math.BigInteger; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.lang3.StringUtils; @@ -209,25 +210,16 @@ public class PlateFieldFactory extends FieldFactory { } private String getCommentText(CodeUnit cu, List offcutComments) { - String[] comments = cu.getCommentAsArray(CommentType.PLATE); - if (comments == null) { - return null; + Stream commentsStream = Stream.empty(); + String[] plateComments = cu.getCommentAsArray(CommentType.PLATE); + if (plateComments != null) { + commentsStream = Arrays.stream(plateComments); } - StringBuilder buffy = new StringBuilder(); - for (String comment : comments) { - if (buffy.length() != 0) { - buffy.append('\n'); - } - buffy.append(comment); - } - for (String offcut : offcutComments) { - if (buffy.length() != 0) { - buffy.append('\n'); - } - buffy.append(offcut); - } - return buffy.toString(); + Program program = cu.getProgram(); + Stream comments = Stream.concat(commentsStream, offcutComments.stream()); + return comments.map(c -> CommentUtils.getDisplayString(c, program)) + .collect(Collectors.joining("\n")); } /*