@Override public Statement getSimpleCopy() { return new SynchronizedStatement(); }
private static Integer getFirstProtectedRange(Statement stat) { while (true) { Statement parent = stat.getParent(); if (parent == null) { break; } if (parent.type == Statement.TYPE_CATCHALL || parent.type == Statement.TYPE_TRYCATCH) { if (parent.getFirst() == stat) { return parent.id; } } else if (parent.type == Statement.TYPE_SYNCRONIZED) { if (((SynchronizedStatement)parent).getBody() == stat) { return parent.id; } } stat = parent; } return null; }
public static void removeSynchronizedHandler(Statement stat) { for (Statement st : stat.getStats()) { removeSynchronizedHandler(st); } if (stat.type == Statement.TYPE_SYNCRONIZED) { ((SynchronizedStatement)stat).removeExc(); } }
SynchronizedStatement sync = new SynchronizedStatement(current, ca.getFirst(), ca.getHandler()); sync.setAllParent(); sync.addLabeledEdge(edge);
@Override public TextBuffer toJava(int indent, BytecodeMappingTracer tracer) { TextBuffer buf = new TextBuffer(); buf.append(ExprProcessor.listToJava(varDefinitions, indent, tracer)); buf.append(first.toJava(indent, tracer)); if (isLabeled()) { buf.appendIndent(indent).append("label").append(this.id.toString()).append(":").appendLineSeparator(); tracer.incrementCurrentSourceLine(); } buf.appendIndent(indent).append(headexprent.get(0).toJava(indent, tracer)).append(" {").appendLineSeparator(); tracer.incrementCurrentSourceLine(); buf.append(ExprProcessor.jmpWrapper(body, indent + 1, true, tracer)); buf.appendIndent(indent).append("}").appendLineSeparator(); mapMonitorExitInstr(tracer); tracer.incrementCurrentSourceLine(); return buf; }
tailexprlst = ((SynchronizedStatement)stat).getHeadexprentList(); break; case Statement.TYPE_SWITCH:
SynchronizedStatement sync = new SynchronizedStatement(current, ca.getFirst(), ca.getHandler()); sync.setAllParent(); sync.addLabeledEdge(edge);
public TextBuffer toJava(int indent, BytecodeMappingTracer tracer) { TextBuffer buf = new TextBuffer(); buf.append(ExprProcessor.listToJava(varDefinitions, indent, tracer)); buf.append(first.toJava(indent, tracer)); if (isLabeled()) { buf.appendIndent(indent).append("label").append(this.id.toString()).append(":").appendLineSeparator(); tracer.incrementCurrentSourceLine(); } buf.appendIndent(indent).append(headexprent.get(0).toJava(indent, tracer)).append(" {").appendLineSeparator(); tracer.incrementCurrentSourceLine(); buf.append(ExprProcessor.jmpWrapper(body, indent + 1, true, tracer)); buf.appendIndent(indent).append("}").appendLineSeparator(); mapMonitorExitInstr(tracer); tracer.incrementCurrentSourceLine(); return buf; }
tailexprlst = ((SynchronizedStatement)stat).getHeadexprentList(); break; case Statement.TYPE_SWITCH:
private static Integer getFirstProtectedRange(Statement stat) { while (true) { Statement parent = stat.getParent(); if (parent == null) { break; } if (parent.type == Statement.TYPE_CATCHALL || parent.type == Statement.TYPE_TRYCATCH) { if (parent.getFirst() == stat) { return parent.id; } } else if (parent.type == Statement.TYPE_SYNCRONIZED) { if (((SynchronizedStatement)parent).getBody() == stat) { return parent.id; } } stat = parent; } return null; }
public static void removeSynchronizedHandler(Statement stat) { for (Statement st : stat.getStats()) { removeSynchronizedHandler(st); } if (stat.type == Statement.TYPE_SYNCRONIZED) { ((SynchronizedStatement)stat).removeExc(); } }
public Statement getSimpleCopy() { return new SynchronizedStatement(); }
Statement body = ((SynchronizedStatement)closure).getBody();