hotspot/src/share/vm/runtime/javaCalls.cpp
changeset 27157 364276bc8d8b
parent 26135 82b516c550f7
child 31019 d05fcdd70109
equal deleted inserted replaced
27007:3cacf4ad4fc9 27157:364276bc8d8b
   171   }
   171   }
   172   ShouldNotReachHere();
   172   ShouldNotReachHere();
   173   return T_ILLEGAL;
   173   return T_ILLEGAL;
   174 }
   174 }
   175 
   175 
   176 // ===== object constructor calls =====
       
   177 
       
   178 void JavaCalls::call_default_constructor(JavaThread* thread, methodHandle method, Handle receiver, TRAPS) {
       
   179   assert(method->name() == vmSymbols::object_initializer_name(),    "Should only be called for default constructor");
       
   180   assert(method->signature() == vmSymbols::void_method_signature(), "Should only be called for default constructor");
       
   181 
       
   182   InstanceKlass* ik = method->method_holder();
       
   183   if (ik->is_initialized() && ik->has_vanilla_constructor()) {
       
   184     // safe to skip constructor call
       
   185   } else {
       
   186     static JavaValue result(T_VOID);
       
   187     JavaCallArguments args(receiver);
       
   188     call(&result, method, &args, CHECK);
       
   189   }
       
   190 }
       
   191 
       
   192 // ============ Virtual calls ============
   176 // ============ Virtual calls ============
   193 
   177 
   194 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   178 void JavaCalls::call_virtual(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS) {
   195   CallInfo callinfo;
   179   CallInfo callinfo;
   196   Handle receiver = args->receiver();
   180   Handle receiver = args->receiver();