On Wed, 11 May 2022 14:27:27 GMT, Kim Barrett <kbarr...@openjdk.org> wrote:

>> src/java.base/share/native/libjli/java.c line 1629:
>> 
>>> 1627:         const char *arg = jargv[i];
>>> 1628:         if (arg[0] == '-' && arg[1] == 'J') {
>>> 1629:             *nargv++ = (arg[2] == '\0') ? NULL : JLI_StringDup(arg + 
>>> 2);
>> 
>> Wow!
>
> I wonder if the client expects NULL strings in the result, or if the NULL 
> value should be an empty string?  If empty strings are okay, this would be 
> simpler without the conditional, just dup from arg + 2 to the terminating 
> byte (which might be immediate).

`NULL` affects as a loop stopper in `ParseArguments()` as following:


static jboolean
ParseArguments(int *pargc, char ***pargv,
               int *pmode, char **pwhat,
               int *pret, const char *jrepath)
{
    int argc = *pargc;
    char **argv = *pargv;
    int mode = LM_UNKNOWN;
    char *arg;

    *pret = 0;

    while ((arg = *argv) != 0 && *arg == '-') {


But I'm not sure it is valid, I think it might be discussed as another issue.

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

PR: https://git.openjdk.java.net/jdk/pull/8646

Reply via email to