141 |
141 |
142 #ifdef ASSERT |
142 #ifdef ASSERT |
143 void ResourceObj::set_allocation_type(address res, allocation_type type) { |
143 void ResourceObj::set_allocation_type(address res, allocation_type type) { |
144 // Set allocation type in the resource object |
144 // Set allocation type in the resource object |
145 uintptr_t allocation = (uintptr_t)res; |
145 uintptr_t allocation = (uintptr_t)res; |
146 assert((allocation & allocation_mask) == 0, "address should be aligned to 4 bytes at least"); |
146 assert((allocation & allocation_mask) == 0, err_msg("address should be aligned to 4 bytes at least: " PTR_FORMAT, res)); |
147 assert(type <= allocation_mask, "incorrect allocation type"); |
147 assert(type <= allocation_mask, "incorrect allocation type"); |
148 ResourceObj* resobj = (ResourceObj *)res; |
148 ResourceObj* resobj = (ResourceObj *)res; |
149 resobj->_allocation_t[0] = ~(allocation + type); |
149 resobj->_allocation_t[0] = ~(allocation + type); |
150 if (type != STACK_OR_EMBEDDED) { |
150 if (type != STACK_OR_EMBEDDED) { |
151 // Called from operator new() and CollectionSetChooser(), |
151 // Called from operator new() and CollectionSetChooser(), |