[foreign] RFR 8222288: jextract generates unescaped String literals for macros
Sundararajan Athijegannathan
sundararajan.athijegannathan at oracle.com
Thu Apr 11 05:53:43 UTC 2019
Good catch! Updated:
http://cr.openjdk.java.net/~sundar/8222288/webrev.01/index.html
PS.
* Build/tests fine on all platform (via mach5).
* I guess my earlier patch also passed on Windows. It seems that
repeated backslash (\\) in the path name (while redundant) is accepted.
Thanks,
-Sundar
On 10/04/19, 11:10 PM, Jorn Vernee wrote:
> This patch also makes my earlier fix for paths on Windows redundant
> [1], since now the problem is taken care of when emitting the string
> instead.
>
> You could remove the old changes to JavaSourceFactory.java at this
> point. I've already tested that this works as well:
>
> diff -r a4510fd757fc
> src/jdk.jextract/share/classes/com/sun/tools/jextract/JavaSourceFactory.java
> ---
> a/src/jdk.jextract/share/classes/com/sun/tools/jextract/JavaSourceFactory.java
> Wed Apr 10 19:22:59 2019 +0200
> +++
> b/src/jdk.jextract/share/classes/com/sun/tools/jextract/JavaSourceFactory.java
> Wed Apr 10 19:34:04 2019 +0200
> @@ -99,7 +99,7 @@
> global_jsb.addPackagePrefix(headerFile.pkgName);
>
> Map<String, Object> header = new HashMap<>();
> - header.put("path",
> headerFile.path.toAbsolutePath().toString().replace("\\", "\\\\"));
> + header.put("path", headerFile.path.toAbsolutePath().toString());
> if (!libraryNames.isEmpty()) {
> header.put("libraries", libraryNames.toArray(new
> String[0]));
> if (libraryPaths != null && !libraryPaths.isEmpty()) {
> @@ -168,7 +168,7 @@
> SourceLocation.Location loc = src.getFileLocation();
> Path p = loc.path();
> Map<String, Object> fields = new HashMap<>();
> - fields.put("file", p == null ? "<builtin>" :
> p.toAbsolutePath().toString().replace("\\", "\\\\"));
> + fields.put("file", p == null ? "<builtin>" :
> p.toAbsolutePath().toString());
> fields.put("line", loc.line());
> fields.put("column", loc.column());
> jsb.addAnnotation(align, NATIVE_LOCATION, fields);
>
> Cheers,
> Jorn
>
> [1] : http://hg.openjdk.java.net/panama/dev/rev/1daf5d6e017c
>
> Sundararajan Athijegannathan schreef op 2019-04-10 19:02:
>> Please review.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8222288
>> Webrev: https://cr.openjdk.java.net/~sundar/8222288/webrev.00/
>>
>> PS. Thanks to Maurizio for suggestion on javac source for 'source
>> safe' String escape!
>>
>> Thanks,
>> -Sundar
More information about the panama-dev
mailing list