@Override public MutableInteger get() { return new MutableInteger(); } };
@Override public MutableInteger get() { return new MutableInteger(); } };
@Override public MutableInteger get() { return new MutableInteger(); } };
private static void increment(final Map<Variable, MutableInteger> map, final Variable variable) { final MutableInteger count = map.get(variable); if (count == null) { map.put(variable, new MutableInteger(1)); } else { count.increment(); } }
private static void increment(final Map<Variable, MutableInteger> map, final Variable variable) { final MutableInteger count = map.get(variable); if (count == null) { map.put(variable, new MutableInteger(1)); } else { count.increment(); } }
private static void increment(final Map<Variable, MutableInteger> map, final Variable variable) { final MutableInteger count = map.get(variable); if (count == null) { map.put(variable, new MutableInteger(1)); } else { count.increment(); } }
public AstType convertType(final TypeReference type, final ConvertTypeOptions options) { return convertType(type, new MutableInteger(0), options); }
public AstType convertType(final TypeReference type, final ConvertTypeOptions options) { return convertType(type, new MutableInteger(0), options); }
public AstType convertType(final TypeReference type, final ConvertTypeOptions options) { return convertType(type, new MutableInteger(0), options); }
public static Type<?> parseSignature(final String signature) { VerifyArgument.notNullOrWhitespace(signature, "signature"); return parseTopLevelSignature(signature, new MutableInteger()); }
public static Type<?> parseSignature(final String signature) { VerifyArgument.notNullOrWhitespace(signature, "signature"); return parseTopLevelSignature(signature, new MutableInteger()); }
public static Type<?> parseSignature(final String signature) { VerifyArgument.notNullOrWhitespace(signature, "signature"); return parseTopLevelSignature(signature, new MutableInteger()); }
@Override public boolean run(final List<Node> body, final Expression head, final int position) { boolean modified = introducePostIncrementForVariables(body, head, position); assert body.get(position) == head; if (position > 0) { final Expression newExpression = introducePostIncrementForInstanceFields(head, body.get(position - 1)); if (newExpression != null) { modified = true; body.remove(position); new Inlining(context, method).inlineIfPossible(body, new MutableInteger(position - 1)); } } return modified; }
@Override public boolean run(final List<Node> body, final Expression head, final int position) { boolean modified = introducePostIncrementForVariables(body, head, position); assert body.get(position) == head; if (position > 0) { final Expression newExpression = introducePostIncrementForInstanceFields(head, body.get(position - 1)); if (newExpression != null) { modified = true; body.remove(position); new Inlining(context, method).inlineIfPossible(body, new MutableInteger(position - 1)); } } return modified; }
@Override public boolean run(final List<Node> body, final Expression head, final int position) { boolean modified = introducePostIncrementForVariables(body, head, position); assert body.get(position) == head; if (position > 0) { final Expression newExpression = introducePostIncrementForInstanceFields(head, body.get(position - 1)); if (newExpression != null) { modified = true; body.remove(position); new Inlining(context, method).inlineIfPossible(body, new MutableInteger(position - 1)); } } return modified; }
public static Type<?> parse(final String value) { VerifyArgument.notNullOrWhitespace(value, "value"); switch (value.charAt(0)) { case 'L': case 'T': if (value.charAt(value.length() - 1) == ';') { return parseSignature(value); } break; case '[': return parseSignature(value); } final int primitiveHash = hashPrimitiveName(value); final Type<?> primitiveType = PRIMITIVE_TYPES[primitiveHash]; if (primitiveType != null && value.equals(primitiveType.getName())) { return primitiveType; } try { final Class<?> c = Class.forName(value); if (c != null) { return Type.of(c); } } catch (ClassNotFoundException ignored) { } return parseTopLevelSignature(value, new MutableInteger()); }
public static Type<?> parse(final String value) { VerifyArgument.notNullOrWhitespace(value, "value"); switch (value.charAt(0)) { case 'L': case 'T': if (value.charAt(value.length() - 1) == ';') { return parseSignature(value); } break; case '[': return parseSignature(value); } final int primitiveHash = hashPrimitiveName(value); final Type<?> primitiveType = PRIMITIVE_TYPES[primitiveHash]; if (primitiveType != null && value.equals(primitiveType.getName())) { return primitiveType; } try { final Class<?> c = Class.forName(value); if (c != null) { return Type.of(c); } } catch (ClassNotFoundException ignored) { } return parseTopLevelSignature(value, new MutableInteger()); }
private static void introducePreIncrementOptimization(final DecompilerContext context, final Block method) { final Inlining inlining = new Inlining(context, method); inlining.analyzeMethod(); for (final Block block : method.getSelfAndChildrenRecursive(Block.class)) { final List<Node> body = block.getBody(); final MutableInteger position = new MutableInteger(); for (; position.getValue() < body.size() - 1; position.increment()) { if (!introducePreIncrementForVariables(body, position) && !introducePreIncrementForStaticFields(body, position, inlining)) { introducePreIncrementForInstanceFields(body, position, inlining); } } } }
private static void introducePreIncrementOptimization(final DecompilerContext context, final Block method) { final Inlining inlining = new Inlining(context, method); inlining.analyzeMethod(); for (final Block block : method.getSelfAndChildrenRecursive(Block.class)) { final List<Node> body = block.getBody(); final MutableInteger position = new MutableInteger(); for (; position.getValue() < body.size() - 1; position.increment()) { if (!introducePreIncrementForVariables(body, position) && !introducePreIncrementForStaticFields(body, position, inlining)) { introducePreIncrementForInstanceFields(body, position, inlining); } } } }
private static void introducePreIncrementOptimization(final DecompilerContext context, final Block method) { final Inlining inlining = new Inlining(context, method); inlining.analyzeMethod(); for (final Block block : method.getSelfAndChildrenRecursive(Block.class)) { final List<Node> body = block.getBody(); final MutableInteger position = new MutableInteger(); for (; position.getValue() < body.size() - 1; position.increment()) { if (!introducePreIncrementForVariables(body, position) && !introducePreIncrementForStaticFields(body, position, inlining)) { introducePreIncrementForInstanceFields(body, position, inlining); } } } }