MCPcopy Index your code
hub / github.com/clojure/clojure / visitSwitchInsn

Method visitSwitchInsn

src/jvm/clojure/asm/MethodWriter.java:1359–1382  ·  view source on GitHub ↗
(final Label dflt, final Label[] labels)

Source from the content-addressed store, hash-verified

1357 }
1358
1359 private void visitSwitchInsn(final Label dflt, final Label[] labels) {
1360 if (currentBasicBlock != null) {
1361 if (compute == COMPUTE_ALL_FRAMES) {
1362 currentBasicBlock.frame.execute(Opcodes.LOOKUPSWITCH, 0, null, null);
1363 // Add all the labels as successors of the current basic block.
1364 addSuccessorToCurrentBasicBlock(Edge.JUMP, dflt);
1365 dflt.getCanonicalInstance().flags |= Label.FLAG_JUMP_TARGET;
1366 for (Label label : labels) {
1367 addSuccessorToCurrentBasicBlock(Edge.JUMP, label);
1368 label.getCanonicalInstance().flags |= Label.FLAG_JUMP_TARGET;
1369 }
1370 } else if (compute == COMPUTE_MAX_STACK_AND_LOCAL) {
1371 // No need to update maxRelativeStackSize (the stack size delta is always negative).
1372 --relativeStackSize;
1373 // Add all the labels as successors of the current basic block.
1374 addSuccessorToCurrentBasicBlock(relativeStackSize, dflt);
1375 for (Label label : labels) {
1376 addSuccessorToCurrentBasicBlock(relativeStackSize, label);
1377 }
1378 }
1379 // End the current basic block.
1380 endCurrentBasicBlockWithNoSuccessor();
1381 }
1382 }
1383
1384 @Override
1385 public void visitMultiANewArrayInsn(final String descriptor, final int numDimensions) {

Callers 2

visitTableSwitchInsnMethod · 0.95
visitLookupSwitchInsnMethod · 0.95

Calls 4

getCanonicalInstanceMethod · 0.80
executeMethod · 0.45

Tested by

no test coverage detected