> On Nov 18, 2015, at 11:00 AM, Brent Christian <brent.christ...@oracle.com> 
> wrote:
> 
> Hi, Mandy
> 
> I looked through the jdk code.  I think it's looking quite good.  I just 
> noticed some small details to consider fixing up before pushing.
> 
> Docs:
> 
> StackWalker.StackFrame.getClassName():
> the "binary name" link seems to be broken
> (StackWalker.java line 100)
> 

It works for me.  It looks correct to me.

> StackWalker.getInstance(Set<StackWalker.Option> options):
> StackWalker.getInstance(Set<StackWalker.Option> options, int estimateDepth):
> 
> A couple missing words:
> 
> "Returns a StackWalker instance with the given *options* specifying..."
> 
> "If the given *["options"|"set"]* is empty, ..."
> 
> (Looks like a typo ("@ocde") on StackWalker.java lines 278 & 307)
> 

Fixed.

> 
> Code:
> 
> ==
> jdk/src/java.base/share/classes/sun/util/logging/PlatformLogger.java
> 
> 550:
> The comment for get() states that it returns a StackTraceElement
> 

Fixed.

> ==
> hotspot/src/share/vm/prims/jvm.h (219)
> jdk/src/java.base/share/native/include/jvm.h (196)
> 
> FWIW, the start_index argument of
> JVM_FillStackFrames is an int in the hotspot file, and a jint in the jdk file.

Fixed.

> 
> ==
> jdk/src/java.logging/share/classes/java/util/logging/LogRecord.java
> 
> 658:
> The comment for get() states that it returns a StackTraceElement
> 

Fixed.

> ==
> jdk/src/java.base/share/classes/java/lang/StackStreamFactory.java
> 
> 137         // VM writes to these arrays to fill the stack frame information
> 138         // for each batch
> 
> I think this comment applies to a previous version of the code.
> 
> 
> 195          * Subclass should override this method to change the batch size
> 196          * or invoke the function passed to the StackWalker::walk method
> 
> I believe the function in question is the batchSizeMapper function, no longer 
> being passed to walk(); line 196 can be removed.

Fixed.

> 
> ==
> jdk/src/java.base/share/classes/java/lang/StackFrameInfo.java
> 
> 66
> Perhaps this.memberName does not need to be allocated in the case of 
> -XX:-MemberNameInStackFrame ?
> 

For more accurate footprint comparison, yes it should not allocate MemberName.  
Same for the injected fields if -XX:+MemberNameInStackFrame is set which is the 
default.  I prefer to leave it as the follow-on work for JDK-8141239.  This 
should give a good starting point to do performance measurement for Throwable.  

Mandy

> 
> Thanks,
> -Brent
> 
> On 11/16/15 4:13 PM, Mandy Chung wrote:
>> I’d like to get the code review done by this week.
>> 
>> I renamed the static factory method from create to getInstance since 
>> “create” implies to create a new instance but the method returns a cached 
>> instance instead.  I also changed the spec of getCallerClass per [1].  There 
>> is not much change since webrev.01.
>> 
>> Webrev:
>>    http://cr.openjdk.java.net/~mchung/jdk9/jep259/webrev.02
>> 
>> javadoc:
>>    http://cr.openjdk.java.net/~mchung/jdk9/jep259/api/
>> 
>> Mandy
>> [1] 
>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-November/036589.html
>> 

Reply via email to