Ok, fair enough
+1
-phil.
On 3/27/19, 11:21 PM, Krishna Addepalli wrote:
No it is not. When I'm adding "+1" and "+5", it simply adds that many
number of characters to the size.
The sizeof(char) can be more than 1, and this statement at line 51
(filePath = new char[filePathSize]), takes care of allocating
sufficient number of bytes, which accommodate "filePathSize" number of
characters.
The problem is with memcpy and memset functions, which expect the size
of the buffer to be provided in terms of bytes, which is why, we need
the multiplier only in those functions.
Even I'm in favor of getting rid of them, but unfortunately I cannot
std::string in this case, which would have vastly simplified the code,
and avoided this manual calculation of sizes, but that results in
compiler errors.
Thanks,
Krishna
*From:*Phil Race
*Sent:* Thursday, March 28, 2019 3:11 AM
*To:* Krishna Addepalli <krishna.addepa...@oracle.com>;
swing-dev@openjdk.java.net
*Subject:* Re: <Swing Dev> [13] RFR: JDK-8219914: Change the
environment variable for Java Access Bridge logging to have a directory.
Hi,
It is still inconsistent. the "+1" and "+5" logic relies on the answer
to sizeof(char) being 1.
So either get rid of all those calls or use sizeof('/') and
sizeof(".logX"); instead of 1 and 5.
I'd get rid of them ....
-phil
On 3/27/19 1:41 AM, Krishna Addepalli wrote:
Hi Phil,
Thanks for the review.
I have changed the variable to "JAVA_ACCESSBRIDGE_LOGDIR".
Yes, '/' file separator character works on windows. I have used it
in the past and have also currently tested it on my machine and it
works.
I have added the multiplier "sizeof(char)" for all memcpy and
memset lines in the code, to keep it consistent. Thanks for
pointing that out.
Here is the link to the webrev:
http://cr.openjdk.java.net/~kaddepalli/8219914/webrev01/
<http://cr.openjdk.java.net/%7Ekaddepalli/8219914/webrev01/>
Thanks,
Krishna
*From:*Phil Race
*Sent:* Tuesday, March 26, 2019 10:42 PM
*To:* Krishna Addepalli <krishna.addepa...@oracle.com>
<mailto:krishna.addepa...@oracle.com>; swing-dev@openjdk.java.net
<mailto:swing-dev@openjdk.java.net>
*Subject:* Re: <Swing Dev> [13] RFR: JDK-8219914: Change the
environment variable for Java Access Bridge logging to have a
directory.
Can we just call it JAVA_ACCESSBRIDGE_LOGDIR ?
filePath[envFilePathLength] = '/';
Is this right ? Does fopen on Windows expect this unix style separator ?
53 memcpy(filePath, envfilePath, envFilePathLength*sizeof(char));
56 memcpy(filePath + envFilePathLength + 1 + fileNameLength,
".log", 4*sizeof(char));
Interesting that you feel it necessary to use sizeof(char) when clearly the
whole logic, eg see :
50 auto filePathSize = envFilePathLength + 1 + fileNameLength + 5; //1 for
"/", 5 for ".log" and 0;
assumes it is 1 ...
PrintDebugString("couldnot open file %s", filePath);
couldnot -> could not
-phil.
On 3/26/19 2:45 AM, Krishna Addepalli wrote:
Hi Phil,
Per our discussion, I have changed the
JAVA_ACCESSBRIDGE_LOGFILE to JAVA_ACCESSBRIDGE_LOGDIRECTORY to
reflect that it accepts only a directory value in the variable.
I have also changed the code in AccessBridgeDebug.cpp
appropriately.
So, currently, the code will look for the environment
variable, which should contain path to the directory, and two
log files namely "java_access_bridge.log" and
"windows_access_bridge.log" will be created.
Link to the JDK Issue:
https://bugs.openjdk.java.net/browse/JDK-8219914
Here is the webrev:
http://cr.openjdk.java.net/~kaddepalli/8219914/webrev00/
<http://cr.openjdk.java.net/%7Ekaddepalli/8219914/webrev00/>
Thanks,
Krishna