| Class | Ruva::VM::Class::Reader |
| In: |
lib/ruva/class_loader.rb
|
| Parent: | Object |
ClassReader loads a class and creates an UnresolvedClass that represents the class. It‘s used by the ClassLoader to read a found class
Read a class from a byte array
# File lib/ruva/class_loader.rb, line 509
509: def bytes(bytes)
510: clz = UnresolvedClass.new(*bytes[0,8].unpack('Nnn'))
511:
512: pool_end = read_pool(bytes, clz, *bytes[8,2].unpack('n'))
513:
514: clz.access, clz.this_class, clz.super_class = *bytes[pool_end, 6].unpack('nnn')
515:
516: ifaces_end = read_interfaces(bytes, pool_end + 8, clz, *bytes[pool_end + 6, 2].unpack('n'))
517: fields_end = read_fields(bytes, ifaces_end + 2, clz, *bytes[ifaces_end, 2].unpack('n'))
518: methods_end = read_methods(bytes, fields_end + 2, clz, *bytes[fields_end, 2].unpack('n'))
519: read_attrs(bytes, methods_end + 2, clz, *bytes[methods_end, 2].unpack('n'))
520:
521: clz
522: end