1. 26 Nov, 2017 3 commits
  2. 25 Nov, 2017 7 commits
  3. 19 Nov, 2017 2 commits
  4. 14 Nov, 2017 5 commits
  5. 12 Nov, 2017 3 commits
  6. 01 Nov, 2017 5 commits
  7. 31 Oct, 2017 9 commits
    • Eric Bruneton's avatar
      Improve the code quality of Item and of related code in ClassWriter and ClassReader. · 7e7842b5
      Eric Bruneton authored
      - Item was a mutable class with many set* methods, used to set predefined Item key instances in ClassWriter, to perform lookups (while avoiding the creation of new instances for this). These preallocated keys were error prone, due to the nested calls (a nested call could inadvertently modify the key used by a caller).
      - The Javadoc was largely obsolete, refering mostly to the constant pool, while Item was also used for bootstrap methods and for the ASM specific type table.
      - The number of elements in ClassWriter#items was poorly tracked, for instance bootstrap methods were not taken into account in ClassWriter#put.
      - The threshold to limit hash collisions was not always respected (for instance in copyPool, items was created with a size equal to the constant pool count, without margin).
      - Lookups in ClassWriter#get were not optimal: a check on hashcode could be used before calling the expensive isEqualTo method.
      
      Now Item is replaced with Symbol, which is immutable (except for the lazily computed info field). Also the hashCode and next fields are hidden in a private subclass (they are only used inside SymbolTable).
      The preallocated Item key, key2, ... fields are removed, while keeping the zero allocation property for lookups.
      The number of elements in entries is now explicitely tracked with entryCount, and the threshold is correctly used.
      Lookups are now optimized to do a quick hashcode comparison before slow equality tests.
      All Symbol management is now done is a separate SymbolTable class, allowing a cleaner implementation for the copyPool option (more private fields, less exposure of internal details to other classes).
      
      According to performance tests using benchmarks/read-write, this new code is slightly faster than before (e.g. ~1.05 speedup for R+W with or without copyPool).
      The jar size is now 99581 bytes vs 95209 for ASM 6.0.
      7e7842b5
    • Eric Bruneton's avatar
      Ignore the files generated by Eclipse. · aa6c7002
      Eric Bruneton authored
      aa6c7002
    • Eric Bruneton's avatar
      Merge branch 'fix-javadoc' · 48f0e02e
      Eric Bruneton authored
      48f0e02e
    • Eric Bruneton's avatar
      Merge branch 'fix-javadoc' into 'master' · 42ae0f49
      Eric Bruneton authored
      42ae0f49
    • Eric Bruneton's avatar
      Fix the remaining Javadoc errors. · b0162dbe
      Eric Bruneton authored
      b0162dbe
    • Eric Bruneton's avatar
      Merge branch '317800-dont-insert-frames-if-expand-frames-not-set' into 'master' · f1cf5733
      Eric Bruneton authored
      Don't insert frames when expanding ASM pseudo instructions if EXPAND_FRAMES is not set.
      
      Closes #317800
      
      See merge request !52
      f1cf5733
    • Eric Bruneton's avatar
      Merge branch 'delete-all-examples' into 'master' · a4bf8cc8
      Eric Bruneton authored
      Delete the examples.
      
      See merge request !53
      a4bf8cc8
    • Eric Bruneton's avatar
      Merge branch 'deprecate-xml-api' into 'master' · 26dc3c8d
      Eric Bruneton authored
      Deprecate the XML API.
      
      See merge request !54
      26dc3c8d
    • Eric Bruneton's avatar
      Merge branch 'improve-fieldwriter' into 'master' · 35448964
      Eric Bruneton authored
      Improve the code quality of FieldWriter.
      
      See merge request !64
      35448964
  8. 22 Oct, 2017 6 commits