Code Review for 7031614

Prepared by:never on Tue Mar 29 13:56:44 PDT 2011
Workspace:/net/smite.us.oracle.com/export/ws/merged
Compare against: /net/smite.us.oracle.com/export/ws/baseline
Summary of changes: 242 lines changed: 176 ins; 31 del; 35 mod; 7684 unchg
Patch of changes: 7031614.patch
Author comments:
7031614: jmap -permstat fails with java.lang.InternalError in sun.jvm.hotspot.oops.OopField.getValue
Reviewed-by:

There were some places that were finding static fields by iterating
over the InstanceKlass object which I missed in my original changes.
I added an iterateStaticFields that hides the owner the static fields
and uses the OopVisitor.getObj to return the proper object. I
inspected all the iterateFields call sites to make sure I didn't miss
any. Additionally iteration of the mirror wasn't visiting the static
fields so some roots might be missed by the reverse pointers analysis.
There is heap iteration code in the SA and the InstanceMirrorKlass
wasn't plugged into the the oop sizing logic in the SA which caused
some searches to fail. I needed to add access to oop_size so I moved
the java_lang_Class style utilities into their own class and made them
like normal SA style classes. Tested with the full tmtools suite that
showed these issues plus some other which don't appear to have been
reported.

Bug id: Bug Database
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java

10 lines changed: 9 ins; 0 del; 1 mod; 646 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java

1 line changed: 0 ins; 0 del; 1 mod; 79 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java

21 lines changed: 19 ins; 0 del; 2 mod; 880 unchg

------ ------ ------ ------ --- New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/InstanceMirrorKlass.java

67 lines changed: 67 ins; 0 del; 0 mod; 0 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/jdi/ClassObjectReferenceImpl.java

2 lines changed: 0 ins; 0 del; 2 mod; 51 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java

6 lines changed: 0 ins; 4 del; 2 mod; 234 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java

24 lines changed: 0 ins; 24 del; 0 mod; 288 unchg

------ ------ ------ ------ --- New Patch Raw agent/src/share/classes/sun/jvm/hotspot/oops/java_lang_Class.java

77 lines changed: 77 ins; 0 del; 0 mod; 0 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java

15 lines changed: 0 ins; 2 del; 13 mod; 843 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/tools/FinalizerInfo.java

8 lines changed: 0 ins; 0 del; 8 mod; 130 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/utilities/HeapGXLWriter.java

1 line changed: 0 ins; 0 del; 1 mod; 409 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java

1 line changed: 0 ins; 0 del; 1 mod; 1014 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java

4 lines changed: 0 ins; 1 del; 3 mod; 304 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw agent/src/share/classes/sun/jvm/hotspot/utilities/soql/JSJavaFactoryImpl.java

1 line changed: 0 ins; 0 del; 1 mod; 195 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/oops/instanceMirrorKlass.hpp

2 lines changed: 2 ins; 0 del; 0 mod; 110 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/vmStructs.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 2501 unchg

This code review page was prepared using /never/bin/webrev (vers 23.18-hg-never).