Skip to content
This repository has been archived by the owner on Feb 23, 2018. It is now read-only.

Varming/5.1 #11

Merged
merged 17 commits into from
Jul 20, 2016
Merged

Varming/5.1 #11

merged 17 commits into from
Jul 20, 2016

Commits on Jul 18, 2016

  1. Stock ASM 5.1, all customizations reverted

    Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    3aa2bf7 View commit details
    Browse the repository at this point in the history
  2. update package clauses

    Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    c45dc6a View commit details
    Browse the repository at this point in the history
  3. update imports

    Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    ca53ab1 View commit details
    Browse the repository at this point in the history
  4. update @links, @associates

    Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    bdefa61 View commit details
    Browse the repository at this point in the history
  5. remove trailing whitespace

    Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    e8885eb View commit details
    Browse the repository at this point in the history
  6. [asm-cherry-pick] asm.CustomAttribute class

    Allows creating an asm.Attribute and directly providing the content
    as a byte array.
    
    Cherry-pick of
    lrytz/scala@9a7e518
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    decf106 View commit details
    Browse the repository at this point in the history
  7. [asm-cherry-pick] Ensure instructions belong only to one list

    Fail early when adding an instruction that already belongs to a
    different instruction list.
    
    Cherry-pick of
    lrytz/scala@eccd0dc
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    ceffb2c View commit details
    Browse the repository at this point in the history
  8. [asm-cherry-pick] Associate LabelNodes with their corresponding label

    Cherry-pick of
    lrytz/scala@2458576
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    7bb61b5 View commit details
    Browse the repository at this point in the history
  9. [asm-cherry-pick] Log names on method size overflow

    Cherry-pick of
    lrytz/scala@34e3220
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    d245723 View commit details
    Browse the repository at this point in the history
  10. [asm-cherry-pick] Use MethodWriter to compute maxLocals / maxStack

    Make class MethodWriter public and add accessors for maxLocals and
    maxStack. This is the simplest way to compute the maxs using the
    ASM framework. It is used in the optimizer, see
    scala/scala@90781e8
    
    Cherry-pick of
    lrytz/scala@91810c9
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    af39f30 View commit details
    Browse the repository at this point in the history
  11. [asm-cherry-pick] Fix typos

    Fix typos. This change was initially part of
    scala/scala@549dc88
    
    Cherry-pick of
    lrytz/scala@e1fbc7f
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    d57fb89 View commit details
    Browse the repository at this point in the history
  12. [asm-cherry-pick] Clarify the doc of MethodInsnNode.owner

    Cherry-pick of 97075ea
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    2844600 View commit details
    Browse the repository at this point in the history
  13. [asm-cherry-pick] Allow setting stack values in analysis frames

    Adds a method `setStack` to analysis.Frame which allows setting the
    dataflow value of a stack slot.
    
    Used in nullness analysis. After, for example, an instance call,
    aliases of the receiver can be set to NotNull, both in locals and
    on the stack.
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    3dcfa7b View commit details
    Browse the repository at this point in the history
  14. [asm-cherry-pick] Multiple methods for initializing analysis values

    Introduces a number of methods that are called when initializing or
    updating abstract values in an analyzer frame.
    
    Before this commit, Analyzer.analyze and Frame.execute would always
    call Interpreter.newValue for initializing or updating frame values.
    
    Having multiple methods allows users to return more precise values
    for the individual cases. For example, in a nullness analysis, the
    initial value for the `this` parameter of an instance method can be
    set to not-null.
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    4bddf8b View commit details
    Browse the repository at this point in the history
  15. [asm-cherry-pick] Call interpreter.copyInstruction consistently for a…

    …ll copied values
    
    Before this change, `Frame.execute` did not invoke the interpreter's
    `copyInstruction` method for all values that are pushed on the frame's
    when executing some copying instructions.
    
    For example, in the case of SWAP, copyInstruction is invoked:
    
        value2 = pop();
        value1 = pop();
        push(interpreter.copyOperation(insn, value2));
        push(interpreter.copyOperation(insn, value1));
    
    For DUP on the other hand, the original value is pushed onto the
    stack without notifying the interpreter:
    
        value1 = pop();
        push(value1);
        push(interpreter.copyOperation(insn, value1));
    
    This leads to a problem for the `SourceInterpreter`, which collects
    for every value a set of potential producer instructions. Given the
    bytecode sequence
    
        NEW java/lang/Object
        DUP
        INVOKESPECIAL java/lang/Object.<init> ()V
    
    In the frame of the INVOKESPECIAL instruction, the value on the stack
    lists as its producer the `NEW` operation instead of the `DUP`, which
    not expected.
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    4a7bb6a View commit details
    Browse the repository at this point in the history
  16. [asm-cherry-pick] Fix findItemByIndex in case of hash collisions

    The method `findItemByIndex` only looked at the first item in each
    bucket of the `items` hash table.
    
    Also, in case the item was not found, the counter `i` would be at
    `items.length`, therefore the access `items[i]` crashed with an
    ArrayIndexOutOfBoundsException.
    
    Fixes the issue scala/scala-asm#8.
    lrytz authored and Carsten Varming committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    81194e2 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2016

  1. Update README.md after upgrading to ASM 5.1

    Carsten Varming committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    450a410 View commit details
    Browse the repository at this point in the history