review (S) for 6826261: class file dumping from SA is broken

John Coomes John.Coomes at sun.com
Fri Apr 3 15:55:27 PDT 2009


Tom Rodriguez (Thomas.Rodriguez at Sun.COM) wrote:
> That's a good idea.  How about this relative to the old one:
> 
> http://cr.openjdk.java.net/~never/6826261/edit/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java.udiff.html

Looks good; better than my suggestion.  One typo here:

+         // Check is flags have the attribute and if the ...
                  ^^^^

-John

> On Apr 3, 2009, at 2:03 PM, John Coomes wrote:
> 
> > Tom Rodriguez (Thomas.Rodriguez at Sun.COM) wrote:
> >> http://cr.openjdk.java.net/~never/6826261
> >
> > I'm a noob to the SA, but looks good to me.  One minor suggestion in
> > ClassWriter.java.  The common pattern for checking for
> > synthetic methods is
> >
> > 364             boolean isSyn = isSynthetic(accessFlags);
> > 365             if (isSyn && _syntheticIndex != 0)
> > 366                 fieldAttributeCount++;
> >
> > where you've added && _syntheticIndex != 0.  Can you fold this check
> > into isSyn?  E.g.:
> >
> >  boolean isSyn = _syntheticIndex != 0 && isSynthetic(accessFlags);
> >
> > The uses of isSyn (without the check for _syntheticIndex != 0) simply
> > guard a call to writeSynthetic(), and that does its own check for
> > _syntheticIndex != 0.  Except for this use in writeMethod():
> >
> > 452         if (isSyn) {
> > 453             if (DEBUG) debugMessage("\tmethod is synthetic");
> > 454             writeSynthetic();
> > 455         }
> >
> > Not sure if that debug message is still valid when _syntheticIndex ==
> > 0, since writeSynthetic() won't write anything.
> >
> > -John
> >
> 




More information about the hotspot-compiler-dev mailing list