52 #include "prims/nativeLookup.hpp" |
52 #include "prims/nativeLookup.hpp" |
53 #include "runtime/arguments.hpp" |
53 #include "runtime/arguments.hpp" |
54 #include "runtime/compilationPolicy.hpp" |
54 #include "runtime/compilationPolicy.hpp" |
55 #include "runtime/frame.inline.hpp" |
55 #include "runtime/frame.inline.hpp" |
56 #include "runtime/handles.inline.hpp" |
56 #include "runtime/handles.inline.hpp" |
|
57 #include "runtime/init.hpp" |
57 #include "runtime/orderAccess.inline.hpp" |
58 #include "runtime/orderAccess.inline.hpp" |
58 #include "runtime/relocator.hpp" |
59 #include "runtime/relocator.hpp" |
59 #include "runtime/sharedRuntime.hpp" |
60 #include "runtime/sharedRuntime.hpp" |
60 #include "runtime/signature.hpp" |
61 #include "runtime/signature.hpp" |
61 #include "utilities/quickSort.hpp" |
62 #include "utilities/quickSort.hpp" |
1013 // Adapters for compiled code are made eagerly here. They are fairly |
1014 // Adapters for compiled code are made eagerly here. They are fairly |
1014 // small (generally < 100 bytes) and quick to make (and cached and shared) |
1015 // small (generally < 100 bytes) and quick to make (and cached and shared) |
1015 // so making them eagerly shouldn't be too expensive. |
1016 // so making them eagerly shouldn't be too expensive. |
1016 AdapterHandlerEntry* adapter = AdapterHandlerLibrary::get_adapter(mh); |
1017 AdapterHandlerEntry* adapter = AdapterHandlerLibrary::get_adapter(mh); |
1017 if (adapter == NULL ) { |
1018 if (adapter == NULL ) { |
1018 THROW_MSG_NULL(vmSymbols::java_lang_VirtualMachineError(), "Out of space in CodeCache for adapters"); |
1019 if (!is_init_completed()) { |
|
1020 // Don't throw exceptions during VM initialization because java.lang.* classes |
|
1021 // might not have been initialized, causing problems when constructing the |
|
1022 // Java exception object. |
|
1023 vm_exit_during_initialization("Out of space in CodeCache for adapters"); |
|
1024 } else { |
|
1025 THROW_MSG_NULL(vmSymbols::java_lang_VirtualMachineError(), "Out of space in CodeCache for adapters"); |
|
1026 } |
1019 } |
1027 } |
1020 |
1028 |
1021 if (mh->is_shared()) { |
1029 if (mh->is_shared()) { |
1022 assert(mh->adapter() == adapter, "must be"); |
1030 assert(mh->adapter() == adapter, "must be"); |
1023 assert(mh->_from_compiled_entry != NULL, "must be"); // FIXME, the instructions also not NULL |
1031 assert(mh->_from_compiled_entry != NULL, "must be"); // FIXME, the instructions also not NULL |