From 45d253130d126b5d96756b7252e5702f314e0da9 Mon Sep 17 00:00:00 2001 From: Daniel Gredler Date: Tue, 30 Jul 2024 17:21:03 +0200 Subject: [PATCH] Reduce memory garbage created while drawing MaxiCode symbols --- .../uk/org/okapibarcode/output/Java2DRenderer.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/org/okapibarcode/output/Java2DRenderer.java b/src/main/java/uk/org/okapibarcode/output/Java2DRenderer.java index bdea4209..9af3ee9f 100644 --- a/src/main/java/uk/org/okapibarcode/output/Java2DRenderer.java +++ b/src/main/java/uk/org/okapibarcode/output/Java2DRenderer.java @@ -131,13 +131,16 @@ public void render(Symbol symbol) { g2d.drawString(text.text, x, y); } - for (Hexagon hexagon : symbol.getHexagons()) { + if (!symbol.getHexagons().isEmpty()) { Polygon polygon = new Polygon(); - for (int j = 0; j < 6; j++) { - polygon.addPoint((int) ((hexagon.pointX[j] * magnification) + marginX), - (int) ((hexagon.pointY[j] * magnification) + marginY)); + for (Hexagon hexagon : symbol.getHexagons()) { + for (int j = 0; j < 6; j++) { + polygon.addPoint((int) ((hexagon.pointX[j] * magnification) + marginX), + (int) ((hexagon.pointY[j] * magnification) + marginY)); + } + g2d.fill(polygon); + polygon.reset(); } - g2d.fill(polygon); } List< Circle > target = symbol.getTarget();