MCPcopy Create free account
hub / github.com/GraxCode/zelixkiller / merge

Method merge

src/me/lpk/analysis/InsnAnalyzer.java:472–499  ·  view source on GitHub ↗
(final int insn, final StackFrame frame, final Subroutine subroutine)

Source from the content-addressed store, hash-verified

470 // -------------------------------------------------------------------------
471
472 private void merge(final int insn, final StackFrame frame, final Subroutine subroutine) throws AnalyzerException {
473 StackFrame oldFrame = frames[insn];
474 Subroutine oldSubroutine = subroutines[insn];
475 boolean changes;
476
477 if (oldFrame == null) {
478 frames[insn] = newFrame(frame, insns.get(insn));
479 changes = true;
480 } else {
481 changes = false;
482 interpreter.isMergeCompatible(oldFrame, frame);
483 }
484
485 if (oldSubroutine == null) {
486 if (subroutine != null) {
487 subroutines[insn] = subroutine.copy();
488 changes = true;
489 }
490 } else {
491 if (subroutine != null) {
492 changes |= oldSubroutine.merge(subroutine);
493 }
494 }
495 if (changes && !queued[insn]) {
496 queued[insn] = true;
497 queue[top++] = insn;
498 }
499 }
500
501 @SuppressWarnings("unchecked")
502 private void merge(final int insn, final StackFrame beforeJSR, final StackFrame afterRET, final Subroutine subroutineBeforeJSR, final boolean[] access)

Callers 1

analyzeMethod · 0.95

Calls 4

newFrameMethod · 0.95
isMergeCompatibleMethod · 0.80
copyMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected