comparison src/share/vm/oops/method.cpp @ 20619:b12a2a9b05ca

8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse Reviewed-by: mgerdin, coleenp, bdelsart
author stefank
date Thu, 02 Oct 2014 10:55:36 +0200
parents 966205f0e717
children 600c44255e5f
comparison
equal deleted inserted replaced
20618:7024b693c8f9 20619:b12a2a9b05ca
1861 }; 1861 };
1862 1862
1863 void Method::set_on_stack(const bool value) { 1863 void Method::set_on_stack(const bool value) {
1864 // Set both the method itself and its constant pool. The constant pool 1864 // Set both the method itself and its constant pool. The constant pool
1865 // on stack means some method referring to it is also on the stack. 1865 // on stack means some method referring to it is also on the stack.
1866 _access_flags.set_on_stack(value);
1867 constants()->set_on_stack(value); 1866 constants()->set_on_stack(value);
1868 if (value) MetadataOnStackMark::record(this); 1867
1868 bool succeeded = _access_flags.set_on_stack(value);
1869 if (value && succeeded) {
1870 MetadataOnStackMark::record(this, Thread::current());
1871 }
1869 } 1872 }
1870 1873
1871 // Called when the class loader is unloaded to make all methods weak. 1874 // Called when the class loader is unloaded to make all methods weak.
1872 void Method::clear_jmethod_ids(ClassLoaderData* loader_data) { 1875 void Method::clear_jmethod_ids(ClassLoaderData* loader_data) {
1873 loader_data->jmethod_ids()->clear_all_methods(); 1876 loader_data->jmethod_ids()->clear_all_methods();