hotspot/src/share/vm/utilities/taskqueue.hpp
changeset 3262 30d1c247fc25
parent 2105 347008ce7984
child 3607 fa62293fa65c
--- 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*()  {