--- a/hotspot/src/share/vm/utilities/taskqueue.hpp Fri Jul 10 16:01:20 2009 -0700
+++ b/hotspot/src/share/vm/utilities/taskqueue.hpp Tue Jul 14 15:40:39 2009 -0700
@@ -560,8 +560,14 @@
class StarTask {
void* _holder; // either union oop* or narrowOop*
public:
- StarTask(narrowOop *p) { _holder = (void *)((uintptr_t)p | COMPRESSED_OOP_MASK); }
- StarTask(oop *p) { _holder = (void*)p; }
+ StarTask(narrowOop* p) {
+ assert(((uintptr_t)p & COMPRESSED_OOP_MASK) == 0, "Information loss!");
+ _holder = (void *)((uintptr_t)p | COMPRESSED_OOP_MASK);
+ }
+ StarTask(oop* p) {
+ assert(((uintptr_t)p & COMPRESSED_OOP_MASK) == 0, "Information loss!");
+ _holder = (void*)p;
+ }
StarTask() { _holder = NULL; }
operator oop*() { return (oop*)_holder; }
operator narrowOop*() {