Exemplo n.º 1
0
void InstanceClassDesc::variable_oops_do(void do_oop(OopDesc**)) {
    // Static fields
    jubyte* map = embedded_oop_map();
    while (*map++ != OopMapSentinel) {}; // Skip embedded non-static oop map
    // Iterate over static oop map
    map_oops_do(map, do_oop);
}
Exemplo n.º 2
0
void TaskMirrorDesc::variable_oops_do(void do_oop(OopDesc **)) {

  if (_object_size == header_size()) {
    // no statics so don't continue.  It may be a size_type_array class which
    // isn't really an instance.  Hence trying to obtain the embedded_oop_map
    // will result in a crash
    return;
  }

  // The statics are embedded at the end of this TaskMirrorDesc but the oopmap
  // for them is in the JavaClass object
  if (_containing_class != NULL) {
    jubyte *map = _containing_class->embedded_oop_map();
    // skip over non-static oopmap entries to get to the statics
    while (*map++ != OopMapSentinel) {}
    if (*map != OopMapSentinel) {
        map_oops_do(map, do_oop);
    }
  }

}