Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/method.cpp @ 17883:9428a0b94204
8028497: SIGSEGV at ClassLoaderData::oops_do(OopClosure*, KlassClosure*, bool)
Summary: Keep class in CLD::_klasses list and mirror created for CDS classes if OOM during restore_shareable_info(). This keeps pointers consistent for CMS.
Reviewed-by: ehelin, stefank, jmasa, iklam
author | coleenp |
---|---|
date | Tue, 15 Apr 2014 17:02:20 -0400 |
parents | 606acabe7b5c |
children | 7384f6a12fc1 |
comparison
equal
deleted
inserted
replaced
17876:9c3dc501b5eb | 17883:9428a0b94204 |
---|---|
902 | 902 |
903 mh->set_adapter_entry(adapter); | 903 mh->set_adapter_entry(adapter); |
904 mh->_from_compiled_entry = adapter->get_c2i_entry(); | 904 mh->_from_compiled_entry = adapter->get_c2i_entry(); |
905 return adapter->get_c2i_entry(); | 905 return adapter->get_c2i_entry(); |
906 } | 906 } |
907 | |
908 void Method::restore_unshareable_info(TRAPS) { | |
909 // Since restore_unshareable_info can be called more than once for a method, don't | |
910 // redo any work. If this field is restored, there is nothing to do. | |
911 if (_from_compiled_entry == NULL) { | |
912 // restore method's vtable by calling a virtual function | |
913 restore_vtable(); | |
914 | |
915 methodHandle mh(THREAD, this); | |
916 link_method(mh, CHECK); | |
917 } | |
918 } | |
919 | |
907 | 920 |
908 // The verified_code_entry() must be called when a invoke is resolved | 921 // The verified_code_entry() must be called when a invoke is resolved |
909 // on this method. | 922 // on this method. |
910 | 923 |
911 // It returns the compiled code entry point, after asserting not null. | 924 // It returns the compiled code entry point, after asserting not null. |