< prev index next >

src/hotspot/share/memory/metaspaceShared.cpp

Print this page


1975   int old_tag;
1976   old_tag = (int)(intptr_t)nextPtr();
1977   // do_int(&old_tag);
1978   assert(tag == old_tag, "old tag doesn't match");
1979   FileMapInfo::assert_mark(tag == old_tag);
1980 }
1981 
1982 void ReadClosure::do_oop(oop *p) {
1983   narrowOop o = (narrowOop)nextPtr();
1984   if (o == 0 || !HeapShared::open_archive_heap_region_mapped()) {
1985     p = NULL;
1986   } else {
1987     assert(HeapShared::is_heap_object_archiving_allowed(),
1988            "Archived heap object is not allowed");
1989     assert(HeapShared::open_archive_heap_region_mapped(),
1990            "Open archive heap region is not mapped");
1991     *p = HeapShared::decode_from_archive(o);
1992   }
1993 }
1994 
1995 void ReadClosure::do_mirror_oop(oop *p) {
1996   do_oop(p);
1997   oop mirror = *p;
1998   if (mirror != NULL) {
1999     java_lang_Class::update_archived_mirror_native_pointers(mirror);
2000   }
2001 }
2002 
2003 void ReadClosure::do_region(u_char* start, size_t size) {
2004   assert((intptr_t)start % sizeof(intptr_t) == 0, "bad alignment");
2005   assert(size % sizeof(intptr_t) == 0, "bad size");
2006   do_tag((int)size);
2007   while (size > 0) {
2008     *(intptr_t*)start = nextPtr();
2009     start += sizeof(intptr_t);
2010     size -= sizeof(intptr_t);
2011   }
2012 }
2013 
2014 void MetaspaceShared::set_shared_metaspace_range(void* base, void *static_top, void* top) {
2015   assert(base <= static_top && static_top <= top, "must be");
2016   _shared_metaspace_static_top = static_top;
2017   MetaspaceObj::set_shared_metaspace_range(base, top);
2018 }
2019 
2020 // Return true if given address is in the misc data region
2021 bool MetaspaceShared::is_in_shared_region(const void* p, int idx) {
2022   return UseSharedSpaces && FileMapInfo::current_info()->is_in_shared_region(p, idx);




1975   int old_tag;
1976   old_tag = (int)(intptr_t)nextPtr();
1977   // do_int(&old_tag);
1978   assert(tag == old_tag, "old tag doesn't match");
1979   FileMapInfo::assert_mark(tag == old_tag);
1980 }
1981 
1982 void ReadClosure::do_oop(oop *p) {
1983   narrowOop o = (narrowOop)nextPtr();
1984   if (o == 0 || !HeapShared::open_archive_heap_region_mapped()) {
1985     p = NULL;
1986   } else {
1987     assert(HeapShared::is_heap_object_archiving_allowed(),
1988            "Archived heap object is not allowed");
1989     assert(HeapShared::open_archive_heap_region_mapped(),
1990            "Open archive heap region is not mapped");
1991     *p = HeapShared::decode_from_archive(o);
1992   }
1993 }
1994 








1995 void ReadClosure::do_region(u_char* start, size_t size) {
1996   assert((intptr_t)start % sizeof(intptr_t) == 0, "bad alignment");
1997   assert(size % sizeof(intptr_t) == 0, "bad size");
1998   do_tag((int)size);
1999   while (size > 0) {
2000     *(intptr_t*)start = nextPtr();
2001     start += sizeof(intptr_t);
2002     size -= sizeof(intptr_t);
2003   }
2004 }
2005 
2006 void MetaspaceShared::set_shared_metaspace_range(void* base, void *static_top, void* top) {
2007   assert(base <= static_top && static_top <= top, "must be");
2008   _shared_metaspace_static_top = static_top;
2009   MetaspaceObj::set_shared_metaspace_range(base, top);
2010 }
2011 
2012 // Return true if given address is in the misc data region
2013 bool MetaspaceShared::is_in_shared_region(const void* p, int idx) {
2014   return UseSharedSpaces && FileMapInfo::current_info()->is_in_shared_region(p, idx);


< prev index next >