summaryrefslogtreecommitdiff
path: root/runtime/native/java_lang_DexCache.cc
diff options
context:
space:
mode:
author Sebastien Hertz <shertz@google.com> 2013-09-19 14:47:09 +0200
committer Sebastien Hertz <shertz@google.com> 2013-10-17 11:15:43 +0200
commitee1997a3b83334985e757f369c09e111b121661b (patch)
tree8745229cde52990208b27af54d7e80ea2fc274c4 /runtime/native/java_lang_DexCache.cc
parent9f69b62e6b009b29e6420c49e7444e91466a6a33 (diff)
Improve interpreter handler table management.
We still have two handlers table: - the "main" table which holds execution handlers of each instruction, - the "alternative" table which holds handlers supporting instrumentation before jumping to the corresponding instruction handler from the "main" table. Instrumentation holds the index of the handler table the interpreter must use. This index is represented by the InterpreterHandlerTable enum and is stored in the Instrumentation::interpreter_handler_table_ field. Interpreter's current handler table update happens: - on backward branch - after invoke - when throwing exception. In the case of the backward branch and exception, we only update the table if any thread's flags is set. This allows to only do one test for handling thread suspension and handler table update. This CL also removes the local variable "instrumentation". Every handler which needs it will get it from Runtime::Current()->GetInstrumentation(). Change-Id: Id886ea7ebf3dac1285f0ca701c098aee7ebaab8d
Diffstat (limited to 'runtime/native/java_lang_DexCache.cc')
0 files changed, 0 insertions, 0 deletions