aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/arm/LocalOptimizations.c
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2010-05-03 16:11:20 -0700
committerAndy McFadden <fadden@android.com>2010-05-03 16:53:23 -0700
commitc03da3e87a0537b211f2300d594597d84898b8f7 (patch)
treece2331a89eebcb6966ca6b95f82abd9b6adfc2b4 /vm/compiler/codegen/arm/LocalOptimizations.c
parent743fe2ce4915304560849a17c7625d23ec50999c (diff)
Fix breakpoint handling on switch statements.
Some debuggers (Eclipse and IntelliJ, but not jdb) appear to set breakpoints at all addresses associated with a given bytecode offset. Because dx emits line number information for the data tables used by "switch" statements, we end up setting a breakpoint on the start of the switch data. In the past this wasn't a problem, but now that we're using "hard" breakpoints it's causing the magic number at the start of the table to be overwritten. An explict test on the magic number is causing the intepreter to throw an InternalError. The quick fix is to refuse to stomp on a "magic" NOP. Assuming the line number table is otherwise valid and doesn't point into the middle of a multi-word instruction, this should solve the problem. (We can check this during verification.) Bug 2643148. Change-Id: Ic96947da14ea2346a67f0eb769a1c006153da448
Diffstat (limited to 'vm/compiler/codegen/arm/LocalOptimizations.c')
0 files changed, 0 insertions, 0 deletions