On 6/03/2015 4:10 AM, Jeremy Manson wrote:
Martin points out that getenv on Windows isn't portable (which is to
say, it doesn't work on WindowsRT).  Do we care?  If so, then I'll have
os::getenv do an allocation on Windows, and have it return a unique
pointer like thing.  (Of course, I have no way of testing that).

Many of the win32 APIs we use in the VM are not available in WindowsRT. So I don't think that is an issue.

David
-----

Jeremy

On Wed, Mar 4, 2015 at 5:12 PM, David Holmes <david.hol...@oracle.com
<mailto:david.hol...@oracle.com>> wrote:

    On 5/03/2015 10:07 AM, Jeremy Manson wrote:

        I'm happy to s/os::getenv/getenv/g if we know it works on
        Windows.  I
        assumed that there was some safety / security reason for
        requiring the
        copying - otherwise, why does this interface exist at all?


    I don't know. Someone else (perhaps on hotspot list rather than
    serviceability) may, but I'd have to do a bit of archaeology to find
    out.

        If everyone's happy about this, I'll go ahead and file a bug /
        send in a
        patch, with the understanding that someone else has to test on
        non-Linux
        platforms...


    Sure. Do the patch and I'll run it through JPRT. If you need testing
    other than Solaris and Windows then others will need to step up. :)

    Cheers,
    David

        Jeremy

        On Wed, Mar 4, 2015 at 3:45 PM, David Holmes
        <david.hol...@oracle.com <mailto:david.hol...@oracle.com>
        <mailto:david.holmes@oracle.__com
        <mailto:david.hol...@oracle.com>>> wrote:

             Hi Jeremy,


             On 5/03/2015 6:14 AM, Jeremy Manson wrote:

                 Hey folks,

                 We had a request internally to make it so that
        JAVA_TOOL_OPTIONS
                 could
                 accept something longer than 1024 characters.  See:

                 Arguments::parse_options_____environment_variable(const
        char* name,
                 SysClassPath* scp_p, bool* scp_assembly_required_p)

                 in

        
http://hg.openjdk.java.net/____jdk9/jdk9/hotspot/file/____27f0413cbea3/src/share/vm/____runtime/arguments.cpp
        
<http://hg.openjdk.java.net/__jdk9/jdk9/hotspot/file/__27f0413cbea3/src/share/vm/__runtime/arguments.cpp>

        
<http://hg.openjdk.java.net/__jdk9/jdk9/hotspot/file/__27f0413cbea3/src/share/vm/__runtime/arguments.cpp
        
<http://hg.openjdk.java.net/jdk9/jdk9/hotspot/file/27f0413cbea3/src/share/vm/runtime/arguments.cpp>>

                 Would you folks be amenable to a refactoring so that getenv
                 returns a
                 newly allocated array with the contents of the envvar,
        which the
                 caller
                 has to delete?


             I think this gets used too early in the VM startup to use
        the VM's
             allocation routines (ie with NMT support) - not 100% sure
        though.

             But I think I have to agree with Martin and wonder why we
        have this
             copying interface around getenv, rather than using the
        result of
             getenv directly? Any code that really wants to modify the
        returned
             value can copy it for themselves. That would alleviate the hard
             wired limits.

             getenv is available on Windows too.

             David

                 Jeremy



Reply via email to