--- a/hotspot/src/share/vm/ci/ciSignature.cpp Fri Sep 28 14:36:20 2012 -0700
+++ b/hotspot/src/share/vm/ci/ciSignature.cpp Mon Oct 01 14:50:10 2012 -0700
@@ -23,6 +23,7 @@
*/
#include "precompiled.hpp"
+#include "ci/ciMethodType.hpp"
#include "ci/ciSignature.hpp"
#include "ci/ciUtilities.hpp"
#include "memory/allocation.inline.hpp"
@@ -80,6 +81,24 @@
}
// ------------------------------------------------------------------
+// ciSignature::ciSignature
+ciSignature::ciSignature(ciKlass* accessing_klass, ciSymbol* symbol, ciMethodType* method_type) :
+ _symbol(symbol),
+ _accessing_klass(accessing_klass),
+ _size( method_type->ptype_slot_count()),
+ _count(method_type->ptype_count())
+{
+ ASSERT_IN_VM;
+ EXCEPTION_CONTEXT;
+ Arena* arena = CURRENT_ENV->arena();
+ _types = new (arena) GrowableArray<ciType*>(arena, _count + 1, 0, NULL);
+ for (int i = 0; i < _count; i++) {
+ _types->append(method_type->ptype_at(i));
+ }
+ _types->append(method_type->rtype());
+}
+
+// ------------------------------------------------------------------
// ciSignature::return_type
//
// What is the return type of this signature?