RFR: 8318811: Compiler directives parser swallows a character after line comments
Volker Simonis
simonis at openjdk.org
Wed Oct 25 11:53:45 UTC 2023
Currently, the following valid compiler directive file:
[{
match: "*::*",
c2: { Exclude: true } // c1 only for startup
}]
will be rejected by the parser:
Syntax error on line 4 byte 2: Expected value separator or object end (one of ',}').
At ']'.
}]
Parsing of compiler directives failed
This is because `JSON::skip_line_comment()`, in contradiction to its specification, does **not** "*return the first token after the line comment without consuming it*" but does consumes it.
The fix is trivial:
--- a/src/hotspot/share/utilities/json.cpp
+++ b/src/hotspot/share/utilities/json.cpp
@@ -580,7 +580,7 @@ u_char JSON::skip_line_comment() {
return 0;
}
next();
- return next();
+ return peek();
}
-------------
Commit messages:
- 8318811: Compiler directives parser swallows a character after line comments
Changes: https://git.openjdk.org/jdk/pull/16359/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16359&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8318811
Stats: 21 lines in 2 files changed: 20 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/16359.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/16359/head:pull/16359
PR: https://git.openjdk.org/jdk/pull/16359
More information about the hotspot-dev
mailing list