src/hotspot/share/oops/generateOopMap.cpp
changeset 47822 7437dc810834
parent 47765 b7c7428eaab9
child 48157 7c4d43c26352
equal deleted inserted replaced
47821:0cd18aa4f7b6 47822:7437dc810834
  2144   char msg_buffer[512];
  2144   char msg_buffer[512];
  2145   vsnprintf(msg_buffer, sizeof(msg_buffer), format, ap);
  2145   vsnprintf(msg_buffer, sizeof(msg_buffer), format, ap);
  2146   // Append method name
  2146   // Append method name
  2147   char msg_buffer2[512];
  2147   char msg_buffer2[512];
  2148   jio_snprintf(msg_buffer2, sizeof(msg_buffer2), "%s in method %s", msg_buffer, method()->name()->as_C_string());
  2148   jio_snprintf(msg_buffer2, sizeof(msg_buffer2), "%s in method %s", msg_buffer, method()->name()->as_C_string());
  2149   _exception = Exceptions::new_exception(Thread::current(),
  2149   if (Thread::current()->can_call_java()) {
  2150                 vmSymbols::java_lang_LinkageError(), msg_buffer2);
  2150     _exception = Exceptions::new_exception(Thread::current(),
       
  2151                   vmSymbols::java_lang_LinkageError(), msg_buffer2);
       
  2152   } else {
       
  2153     // We cannot instantiate an exception object from a compiler thread.
       
  2154     // Exit the VM with a useful error message.
       
  2155     fatal("%s", msg_buffer2);
       
  2156   }
  2151 }
  2157 }
  2152 
  2158 
  2153 void GenerateOopMap::report_error(const char *format, ...) {
  2159 void GenerateOopMap::report_error(const char *format, ...) {
  2154   va_list ap;
  2160   va_list ap;
  2155   va_start(ap, format);
  2161   va_start(ap, format);
  2157 }
  2163 }
  2158 
  2164 
  2159 void GenerateOopMap::verify_error(const char *format, ...) {
  2165 void GenerateOopMap::verify_error(const char *format, ...) {
  2160   // We do not distinguish between different types of errors for verification
  2166   // We do not distinguish between different types of errors for verification
  2161   // errors.  Let the verifier give a better message.
  2167   // errors.  Let the verifier give a better message.
  2162   const char *msg = "Illegal class file encountered. Try running with -Xverify:all";
  2168   report_error("Illegal class file encountered. Try running with -Xverify:all");
  2163   _got_error = true;
       
  2164   // Append method name
       
  2165   char msg_buffer2[512];
       
  2166   jio_snprintf(msg_buffer2, sizeof(msg_buffer2), "%s in method %s", msg,
       
  2167                method()->name()->as_C_string());
       
  2168   _exception = Exceptions::new_exception(Thread::current(),
       
  2169                 vmSymbols::java_lang_LinkageError(), msg_buffer2);
       
  2170 }
  2169 }
  2171 
  2170 
  2172 //
  2171 //
  2173 // Report result opcodes
  2172 // Report result opcodes
  2174 //
  2173 //