--- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Thu Apr 11 21:54:46 2013 -0700
+++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp Mon Apr 15 21:25:23 2013 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -454,7 +454,7 @@
continuation = Interpreter::remove_activation_entry();
#endif
// Count this for compilation purposes
- h_method->interpreter_throwout_increment();
+ h_method->interpreter_throwout_increment(THREAD);
} else {
// handler in this method => change bci/bcp to handler bci/bcp and continue there
handler_pc = h_method->code_base() + handler_bci;
@@ -903,6 +903,15 @@
fr.interpreter_frame_set_mdp(new_mdp);
IRT_END
+IRT_ENTRY(MethodCounters*, InterpreterRuntime::build_method_counters(JavaThread* thread, Method* m))
+ MethodCounters* mcs = Method::build_method_counters(m, thread);
+ if (HAS_PENDING_EXCEPTION) {
+ assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOM error here");
+ CLEAR_PENDING_EXCEPTION;
+ }
+ return mcs;
+IRT_END
+
IRT_ENTRY(void, InterpreterRuntime::at_safepoint(JavaThread* thread))
// We used to need an explict preserve_arguments here for invoke bytecodes. However,