277 void set_intersection(const BitMap& bits);
278 // Returns true iff "this" is a superset of "bits".
279 bool contains(const BitMap& bits) const;
280 // Returns true iff "this and "bits" have a non-empty intersection.
281 bool intersects(const BitMap& bits) const;
282
283 // Returns result of whether this map changed
284 // during the operation
285 bool set_union_with_result(const BitMap& bits);
286 bool set_difference_with_result(const BitMap& bits);
287 bool set_intersection_with_result(const BitMap& bits);
288
289 void set_from(const BitMap& bits);
290
291 bool is_same(const BitMap& bits) const;
292
293 // Test if all bits are set or cleared
294 bool is_full() const;
295 bool is_empty() const;
296
297 void print_on_error(outputStream* st, const char* prefix) const;
298
299 #ifndef PRODUCT
300 public:
301 // Printing
302 void print_on(outputStream* st) const;
303 #endif
304 };
305
306 // A concrete implementation of the the "abstract" BitMap class.
307 //
308 // The BitMapView is used when the backing storage is managed externally.
309 class BitMapView : public BitMap {
310 public:
311 BitMapView() : BitMap(NULL, 0) {}
312 BitMapView(bm_word_t* map, idx_t size_in_bits) : BitMap(map, size_in_bits) {}
313 };
314
315 // A BitMap with storage in a ResourceArea.
316 class ResourceBitMap : public BitMap {
|
277 void set_intersection(const BitMap& bits);
278 // Returns true iff "this" is a superset of "bits".
279 bool contains(const BitMap& bits) const;
280 // Returns true iff "this and "bits" have a non-empty intersection.
281 bool intersects(const BitMap& bits) const;
282
283 // Returns result of whether this map changed
284 // during the operation
285 bool set_union_with_result(const BitMap& bits);
286 bool set_difference_with_result(const BitMap& bits);
287 bool set_intersection_with_result(const BitMap& bits);
288
289 void set_from(const BitMap& bits);
290
291 bool is_same(const BitMap& bits) const;
292
293 // Test if all bits are set or cleared
294 bool is_full() const;
295 bool is_empty() const;
296
297 void write_to(bm_word_t* buffer, size_t buffer_size_in_bytes) const;
298 void print_on_error(outputStream* st, const char* prefix) const;
299
300 #ifndef PRODUCT
301 public:
302 // Printing
303 void print_on(outputStream* st) const;
304 #endif
305 };
306
307 // A concrete implementation of the the "abstract" BitMap class.
308 //
309 // The BitMapView is used when the backing storage is managed externally.
310 class BitMapView : public BitMap {
311 public:
312 BitMapView() : BitMap(NULL, 0) {}
313 BitMapView(bm_word_t* map, idx_t size_in_bits) : BitMap(map, size_in_bits) {}
314 };
315
316 // A BitMap with storage in a ResourceArea.
317 class ResourceBitMap : public BitMap {
|