Hi folks,
Uploaded a newer version:
http://cr.openjdk.java.net/~robm/8133249/webrev.02/
To address Rogers question, this needed to be separate from
getLastErrorString because of the return type and the err arg, but I
like the idea of avoiding the creation of a new file. Also, all of the
files that require the new function (now called getErrorString) already
include jni_util.c so it makes sense to put this in jni_util_md.c with
getLastErrorString.
As per Christos' suggestion I've mapped strerr_r to __xpg_strerror_r
instead of using the gnu strerror_r. I'd be interested to hear feedback
on this change.
I've corrected the oversights around the jli sources and
PlainDatagramSocket. The jli stuff shouldn't have been there in the
first place.
Ivan, I've kept the return type. As you note, I should have been using
it in ProcessImpl_md.c and the extra information from the return is
potentially useful.
-Rob
On 23/09/15 14:14, Ivan Gerasimov wrote:
Hi Rob!
On 21.09.2015 18:53, Rob McKenna wrote:
Hi folks,
Requesting a review of this change which switches corelibs usages of
the thread-unsafe strerror over to strerror_r/strerror_s:
http://cr.openjdk.java.net/~robm/8133249/webrev.01/
I think it would be better to have jdk_strerror(errno, tmpbuf,
sizeof(tmpbuf)) instead of jdk_strerror(errno, tmpbuf, (size_t) 1024),
just for the sake of avoiding constant duplication.
I don't see the return code of jdk_strerror() is ever used. I suggest
using it in ProcessImpl_md.c (see below), or just making this function
return void.
jni_util_md.c:
- why can't we just call jdk_strerror(errno, buf, len) and get rid of
the temp buffer?
java_md_common.c:
- commented out #include @ line 26
- the change in JLI_ReportErrorMessageSys() looks incomplete
ProcessImpl_md.c:
- would it make sense to check if jdk_strerror() == EINVAL instead of
comparing the strings?
PlainDatagramSocketImpl.c:
- #include added, but no other changes were made.
TwoStacksPlainDatagramSocketImpl.c:
- buf is declared to be char[1024], but only up to 255 chars are used.
- would be better to move the buf declaration closer to its use, maybe
next to char errmsg[300] line?
jdk_strerror.c:
- minor nit: extra space after strerror_r at lines 46 and 63.
Sincerely yours,
Ivan