[foreign-abi] RFR: 8247488: Add support for string helpers in CSupport (decoding support)

Maurizio Cimadamore mcimadamore at openjdk.java.net
Mon Jun 15 18:29:54 UTC 2020


This patch add more symmetric support for charset-driven decoding of the contents of a native string.
That means we can no longer using a StringBuilder, but, instead, we have to get the byte array and create a `String`
out of that using specified `Charset` instance.

Implementation-wise, following an offline discussion with Jorn, I've settled for an approach which finds string length,
then does a bulk copy to a byte array. Not sure this is going to peform well on small strings. The alternative would
have been to use `ByteArrayOutputStream` - but the issue there is that both `write` and `toString` methods there are
`synchronized`.

In any case, I think the implementation can be made more efficient later, if we find that to be an issue.

-------------

Commit messages:
 - Add support for charset decoding when converting C string into Java string

Changes: https://git.openjdk.java.net/panama-foreign/pull/207/files
 Webrev: https://webrevs.openjdk.java.net/panama-foreign/207/webrev.00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8247488
  Stats: 72 lines in 2 files changed: 61 ins; 2 del; 9 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/207.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/207/head:pull/207

PR: https://git.openjdk.java.net/panama-foreign/pull/207


More information about the panama-dev mailing list