On 4/6/14 11:13 PM, Staffan Larsen wrote:
Curious: What does NPT stand for?
This is from Kelly:
The original purpose of this library was to provide some generic*native
platform tools*
for dealing with things that will happen BEFORE the JVM is started and Java
code can be called.
Thanks,
Serguei
On 4 apr 2014, at 18:52, Kelly O'Hair <kellyoh...@gmail.com> wrote:
Just as background information...
The serviceability team should do what they think is right here, I'll just
provide some history... ;)
The original purpose of this library was to provide some generic native
platform tools for dealing with things that will happen BEFORE the JVM is
started and Java code can be called.
This was necessary for JVM agents (hprof, debugger backend, jvmti demo agents)
and any native code that was executed before the JVM had gotten off the ground.
Doing arbitrary character encoding conversions to/from the various flavors of
UTF-8 is a nightmare outside Java.
And since the characters typed in on a java commandline is in the OS's default
platform encoding, and not in UTF-8, they need to be converted.
Since this native code was not part of hotspot, and was written in C, using the
hotspot functionality for this was not possible at the time.
This logic was isolated because it was so OS specific and ugly, and we (maybe
just me) had visions of needed more in this library, and that maybe we could
limit the ifdef-mania to this library rather than scatter the same ifdef-mania
all over the rest of the JDK native code that lives outside hotspot.
So it seemed natural to isolate it as a separate little library that could be
unit tested on it's own.
It's extremely likely that it could be trimmed down, and as more and more OS
default encodings become UTF-8, maybe it' will eventually become obsolete.
Hope this helps.
-kto
On Apr 4, 2014, at 9:28 AM, Dmitry Samersoff wrote:
Hi Everybody,
We have an libnpt.so[1] in JDK. This library contains bunch of UTF
related functions. On a brief investigation it looks like most of these
functions are not used. Six functions below called one time each from
share/back/* and hprof_init.c [2]
Should I file a CR to have it cleaned up - remove npt library as a
separate entity and move few utf functions that really used to place
where it actually called.
[1] Library sources location
src/share/npt
src/solaris/npt
src/windows/npt
[2] Library usage
src/share/back/transport.c:
utf8FromPlatform
utf8ToPlatform
src/share/back/inStream.c:
utf8sToUtf8m
utf8sToUtf8mLength
src/share/back/outStream.c:
utf8mToUtf8s
utf8mToUtf8sLength
src/share/demo/jvmti/hprof/hprof_init.c
utf8ToPlatform
-Dmitry
--
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.