Correct divide-by-zero test issue

This commit is contained in:
ghidra1 2020-02-03 16:42:35 -05:00
parent af5e11e034
commit fce7cd0a9a

View file

@ -42,10 +42,6 @@ public abstract class AbstractConvertAction extends ListingContextAction {
this.isSigned = isSigned;
setPopupMenuData(new MenuData(new String[] { "Convert", "" }, "Convert"));
setEnabled(true);
JMenuItem item = new JMenuItem();
Font font = item.getFont();
metrics = plugin.getTool().getActiveWindow().getFontMetrics(font);
}
@Override
@ -132,14 +128,28 @@ public abstract class AbstractConvertAction extends ListingContextAction {
return isSigned;
}
private int stringWidth(String s) {
if (metrics == null) {
JMenuItem item = new JMenuItem();
Font font = item.getFont();
metrics = plugin.getTool().getActiveWindow().getFontMetrics(font);
}
int w = metrics.stringWidth(s);
if (w == 0) {
// use default computation if metrics report 0
return 10 * s.length();
}
return w;
}
String getStandardLengthString(String baseString) {
int baseWidth = metrics.stringWidth(baseString);
int spaceWidth = metrics.stringWidth(" ");
int baseWidth = stringWidth(baseString);
int spaceWidth = stringWidth(" ");
int paddingSize = (140 - baseWidth) / spaceWidth;
if (paddingSize <= 0) {
return baseString;
}
StringBuffer buf = new StringBuffer(baseString);
StringBuilder buf = new StringBuilder(baseString);
for (int i = 0; i < paddingSize; i++) {
buf.append(" ");
}