1033 if (res != NULL) { 1034 return res; 1035 } 1036 res = _old_gen->space_containing(addr); 1037 assert(res != NULL, "Could not find containing space"); 1038 return res; 1039 } 1040 1041 HeapWord* GenCollectedHeap::block_start(const void* addr) const { 1042 assert(is_in_reserved(addr), "block_start of address outside of heap"); 1043 if (_young_gen->is_in_reserved(addr)) { 1044 assert(_young_gen->is_in(addr), "addr should be in allocated part of generation"); 1045 return _young_gen->block_start(addr); 1046 } 1047 1048 assert(_old_gen->is_in_reserved(addr), "Some generation should contain the address"); 1049 assert(_old_gen->is_in(addr), "addr should be in allocated part of generation"); 1050 return _old_gen->block_start(addr); 1051 } 1052 1053 size_t GenCollectedHeap::block_size(const HeapWord* addr) const { 1054 assert(is_in_reserved(addr), "block_size of address outside of heap"); 1055 if (_young_gen->is_in_reserved(addr)) { 1056 assert(_young_gen->is_in(addr), "addr should be in allocated part of generation"); 1057 return _young_gen->block_size(addr); 1058 } 1059 1060 assert(_old_gen->is_in_reserved(addr), "Some generation should contain the address"); 1061 assert(_old_gen->is_in(addr), "addr should be in allocated part of generation"); 1062 return _old_gen->block_size(addr); 1063 } 1064 1065 bool GenCollectedHeap::block_is_obj(const HeapWord* addr) const { 1066 assert(is_in_reserved(addr), "block_is_obj of address outside of heap"); 1067 assert(block_start(addr) == addr, "addr must be a block start"); 1068 if (_young_gen->is_in_reserved(addr)) { 1069 return _young_gen->block_is_obj(addr); 1070 } 1071 1072 assert(_old_gen->is_in_reserved(addr), "Some generation should contain the address"); 1073 return _old_gen->block_is_obj(addr); 1074 } 1075 1076 bool GenCollectedHeap::supports_tlab_allocation() const { 1077 assert(!_old_gen->supports_tlab_allocation(), "Old gen supports TLAB allocation?!"); 1078 return _young_gen->supports_tlab_allocation(); 1079 } 1080 1081 size_t GenCollectedHeap::tlab_capacity(Thread* thr) const { 1082 assert(!_old_gen->supports_tlab_allocation(), "Old gen supports TLAB allocation?!"); 1083 if (_young_gen->supports_tlab_allocation()) { 1084 return _young_gen->tlab_capacity(); | 1033 if (res != NULL) { 1034 return res; 1035 } 1036 res = _old_gen->space_containing(addr); 1037 assert(res != NULL, "Could not find containing space"); 1038 return res; 1039 } 1040 1041 HeapWord* GenCollectedHeap::block_start(const void* addr) const { 1042 assert(is_in_reserved(addr), "block_start of address outside of heap"); 1043 if (_young_gen->is_in_reserved(addr)) { 1044 assert(_young_gen->is_in(addr), "addr should be in allocated part of generation"); 1045 return _young_gen->block_start(addr); 1046 } 1047 1048 assert(_old_gen->is_in_reserved(addr), "Some generation should contain the address"); 1049 assert(_old_gen->is_in(addr), "addr should be in allocated part of generation"); 1050 return _old_gen->block_start(addr); 1051 } 1052 1053 bool GenCollectedHeap::block_is_obj(const HeapWord* addr) const { 1054 assert(is_in_reserved(addr), "block_is_obj of address outside of heap"); 1055 assert(block_start(addr) == addr, "addr must be a block start"); 1056 if (_young_gen->is_in_reserved(addr)) { 1057 return _young_gen->block_is_obj(addr); 1058 } 1059 1060 assert(_old_gen->is_in_reserved(addr), "Some generation should contain the address"); 1061 return _old_gen->block_is_obj(addr); 1062 } 1063 1064 bool GenCollectedHeap::supports_tlab_allocation() const { 1065 assert(!_old_gen->supports_tlab_allocation(), "Old gen supports TLAB allocation?!"); 1066 return _young_gen->supports_tlab_allocation(); 1067 } 1068 1069 size_t GenCollectedHeap::tlab_capacity(Thread* thr) const { 1070 assert(!_old_gen->supports_tlab_allocation(), "Old gen supports TLAB allocation?!"); 1071 if (_young_gen->supports_tlab_allocation()) { 1072 return _young_gen->tlab_capacity(); |