From aca8df4f50bddff404c42e3aa894573abf0513b1 Mon Sep 17 00:00:00 2001 From: Kakhnovich Raman Date: Fri, 5 Sep 2025 17:56:39 +0300 Subject: [PATCH 1/3] Fix bug when CM_CONCAT operator didn't have 6 arguments --- .../org/verapdf/gf/model/factory/chunks/ChunkParser.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java index f3d11556f..b48321d78 100644 --- a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java +++ b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java @@ -457,7 +457,11 @@ public void parseChunk(Operator rawOperator, List arguments) { processS(); break; case Operators.CM_CONCAT: - graphicsState.getCTM().concatenate(new Matrix(arguments)); + if (arguments.size() == 6) { + graphicsState.getCTM().concatenate(new Matrix(arguments)); + } else { + LOGGER.log(Level.WARNING, "CM operator does not have 6 arguments"); + } break; case Operators.Q_GRESTORE: if (!graphicsStateStack.isEmpty()) { From 679948f750b061af592453b806ccb505ae6fda6d Mon Sep 17 00:00:00 2001 From: Kakhnovich Raman Date: Mon, 8 Sep 2025 20:37:12 +0300 Subject: [PATCH 2/3] Add same if clause to TM operator --- .../org/verapdf/gf/model/factory/chunks/ChunkParser.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java index b48321d78..878ee9ec1 100644 --- a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java +++ b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java @@ -248,8 +248,12 @@ public void parseChunk(Operator rawOperator, List arguments) { } break; case Operators.TM: - textMatrix = new Matrix(arguments); - textLineMatrix = textMatrix.clone(); + if (arguments.size() == 6) { + textMatrix = new Matrix(arguments); + textLineMatrix = textMatrix.clone(); + } else { + LOGGER.log(Level.WARNING, "TM operator does not have 6 arguments"); + } break; case Operators.TR: if (arguments.size() == 1 && arguments.get(0).getType().isNumber()) { From 5a04e799877704dfd2d651df91a3ccec5f54b843 Mon Sep 17 00:00:00 2001 From: Kakhnovich Raman Date: Tue, 9 Sep 2025 14:30:46 +0300 Subject: [PATCH 3/3] Update ChunkParser.java --- .../java/org/verapdf/gf/model/factory/chunks/ChunkParser.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java index 878ee9ec1..25b2fd7ba 100644 --- a/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java +++ b/wcag-validation/src/main/java/org/verapdf/gf/model/factory/chunks/ChunkParser.java @@ -252,7 +252,7 @@ public void parseChunk(Operator rawOperator, List arguments) { textMatrix = new Matrix(arguments); textLineMatrix = textMatrix.clone(); } else { - LOGGER.log(Level.WARNING, "TM operator does not have 6 arguments"); + LOGGER.log(Level.WARNING, "tm operator does not have 6 arguments"); } break; case Operators.TR: @@ -464,7 +464,7 @@ public void parseChunk(Operator rawOperator, List arguments) { if (arguments.size() == 6) { graphicsState.getCTM().concatenate(new Matrix(arguments)); } else { - LOGGER.log(Level.WARNING, "CM operator does not have 6 arguments"); + LOGGER.log(Level.WARNING, "cm operator does not have 6 arguments"); } break; case Operators.Q_GRESTORE: