hotspot/src/share/vm/runtime/javaCalls.hpp
changeset 33593 60764a78fa5c
parent 33160 c59f1676d27e
child 37456 bf26e0f4235f
equal deleted inserted replaced
33579:01ade4446d96 33593:60764a78fa5c
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   187   // Converts all Handles to oops, and returns a reference to parameter vector
   187   // Converts all Handles to oops, and returns a reference to parameter vector
   188   intptr_t* parameters() ;
   188   intptr_t* parameters() ;
   189   int   size_of_parameters() const { return _size; }
   189   int   size_of_parameters() const { return _size; }
   190 
   190 
   191   // Verify that pushed arguments fits a given method
   191   // Verify that pushed arguments fits a given method
   192   void verify(methodHandle method, BasicType return_type, Thread *thread);
   192   void verify(const methodHandle& method, BasicType return_type, Thread *thread);
   193 };
   193 };
   194 
   194 
   195 // All calls to Java have to go via JavaCalls. Sets up the stack frame
   195 // All calls to Java have to go via JavaCalls. Sets up the stack frame
   196 // and makes sure that the last_Java_frame pointers are chained correctly.
   196 // and makes sure that the last_Java_frame pointers are chained correctly.
   197 //
   197 //
   198 
   198 
   199 class JavaCalls: AllStatic {
   199 class JavaCalls: AllStatic {
   200   static void call_helper(JavaValue* result, methodHandle* method, JavaCallArguments* args, TRAPS);
   200   static void call_helper(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
   201  public:
   201  public:
   202   // call_special
   202   // call_special
   203   // ------------
   203   // ------------
   204   // The receiver must be first oop in argument list
   204   // The receiver must be first oop in argument list
   205   static void call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
   205   static void call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
   225   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
   225   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
   226   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
   226   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
   227   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
   227   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
   228 
   228 
   229   // Low-level interface
   229   // Low-level interface
   230   static void call(JavaValue* result, methodHandle method, JavaCallArguments* args, TRAPS);
   230   static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
   231 };
   231 };
   232 
   232 
   233 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP
   233 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP