comparison src/share/vm/runtime/sharedRuntime.cpp @ 28:67914967a4b5

6650373: Assert in methodOopDesc::make_adapters() Summary: AdapterHandlerLibrary::get_create_adapter_index() returns incorrect value (-2) when CodeCache is full. Reviewed-by: sgoldman
author kvn
date Fri, 22 Feb 2008 17:55:13 -0800
parents f8236e79048a
children cd0742ba123c
comparison
equal deleted inserted replaced
27:1f530c629c7d 28:67914967a4b5
1837 comp_args_on_stack, 1837 comp_args_on_stack,
1838 sig_bt, 1838 sig_bt,
1839 regs); 1839 regs);
1840 1840
1841 B = BufferBlob::create(AdapterHandlerEntry::name, &buffer); 1841 B = BufferBlob::create(AdapterHandlerEntry::name, &buffer);
1842 if (B == NULL) return -2; // Out of CodeCache space 1842 if (B == NULL) {
1843 // CodeCache is full, disable compilation
1844 // Ought to log this but compile log is only per compile thread
1845 // and we're some non descript Java thread.
1846 UseInterpreter = true;
1847 if (UseCompiler || AlwaysCompileLoopMethods ) {
1848 #ifndef PRODUCT
1849 warning("CodeCache is full. Compiler has been disabled");
1850 if (CompileTheWorld || ExitOnFullCodeCache) {
1851 before_exit(JavaThread::current());
1852 exit_globals(); // will delete tty
1853 vm_direct_exit(CompileTheWorld ? 0 : 1);
1854 }
1855 #endif
1856 UseCompiler = false;
1857 AlwaysCompileLoopMethods = false;
1858 }
1859 return 0; // Out of CodeCache space (_handlers[0] == NULL)
1860 }
1843 entry->relocate(B->instructions_begin()); 1861 entry->relocate(B->instructions_begin());
1844 #ifndef PRODUCT 1862 #ifndef PRODUCT
1845 // debugging suppport 1863 // debugging suppport
1846 if (PrintAdapterHandlers) { 1864 if (PrintAdapterHandlers) {
1847 tty->cr(); 1865 tty->cr();