     if attr_types[name]?
       attr = new attr_types[name]
       old_len = bytes_array.size()
-      bytes_array = attr.parse(bytes_array,constant_pool,attr_len)
+      attr.parse bytes_array, constant_pool, attr_len
       new_len = bytes_array.size()
       if old_len - new_len != attr_len
         #throw new Error "#{name} attribute didn't consume all bytes"

    @num_exceptions = bytes_array.get_uint 2
    exc_refs = (bytes_array.get_uint 2 for i in [0...@num_exceptions] by 1)
    @exceptions = (constant_pool.get(ref).deref() for ref in exc_refs)
    return bytes_array

class InnerClasses
  parse: (bytes_array, constant_pool) ->
    num_classes = bytes_array.get_uint 2
    @classes = (@parse_class bytes_array, constant_pool for i in [0...num_classes] by 1)
    return bytes_array

  parse_class: (bytes_array, constant_pool) ->
    {


    @num_entries = bytes_array.get_uint 2
    @entries = (parse_entries() for i in [0...@num_entries] by 1)


class LocalVariableTable
  parse: (bytes_array, constant_pool) ->
    @num_entries = bytes_array.get_uint 2
    @entries = (@parse_entries bytes_array, constant_pool for i in [0...@num_entries] by 1)

  parse_entries: (bytes_array, constant_pool) ->
    {
