You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by xl...@apache.org on 2008/01/24 03:06:26 UTC

svn commit: r614767 - in /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common: hashcode.cpp hashcode.h

Author: xli
Date: Wed Jan 23 18:06:17 2008
New Revision: 614767

URL: http://svn.apache.org/viewvc?rev=614767&view=rev
Log:
HARMONY-5303 : [drlvm][Linux64 gcc bug] EUT hangs up

Modified:
    harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.cpp
    harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.h

Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.cpp?rev=614767&r1=614766&r2=614767&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.cpp Wed Jan 23 18:06:17 2008
@@ -31,7 +31,7 @@
       if((POINTER_SIZE_INT)dest_addr != (POINTER_SIZE_INT)p_obj){
         *p_obj_size += GC_OBJECT_ALIGNMENT; 
         obj_info = obj_info | HASHCODE_ATTACHED_BIT;
-        *(int*) &hashcode = hashcode_gen(p_obj);
+        hashcode = (POINTER_SIZE_INT)hashcode_gen(p_obj);
         POINTER_SIZE_INT obj_end_pos = (POINTER_SIZE_INT)dest_addr + vm_object_size(p_obj);
         collector_hashcodeset_add_entry(collector, (Partial_Reveal_Object**)obj_end_pos);
         collector_hashcodeset_add_entry(collector, (Partial_Reveal_Object**)hashcode);
@@ -43,7 +43,7 @@
       break;
       
     case HASHCODE_SET_BUFFERED:
-      *(int*) &hashcode = hashcode_buf_lookup(p_obj, old_buf);
+      hashcode = (POINTER_SIZE_INT)hashcode_buf_lookup(p_obj, old_buf);
       if((POINTER_SIZE_INT)dest_addr != (POINTER_SIZE_INT)p_obj){
         *p_obj_size += GC_OBJECT_ALIGNMENT; 
         obj_info = obj_info & ~HASHCODE_BUFFERED_BIT;
@@ -52,7 +52,7 @@
         collector_hashcodeset_add_entry(collector, (Partial_Reveal_Object**)obj_end_pos);
         collector_hashcodeset_add_entry(collector, (Partial_Reveal_Object**)hashcode);
       }else{
-        hashcode_buf_add((Partial_Reveal_Object*)dest_addr, *(int*) &hashcode, new_buf);          
+        hashcode_buf_add((Partial_Reveal_Object*)dest_addr, (int32)hashcode, new_buf);          
       }
       break;
       
@@ -86,6 +86,7 @@
 }
 
 /* processing of hashcode in different GC algorithms --> */
+
 
 
 

Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.h?rev=614767&r1=614766&r2=614767&view=diff
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/hashcode.h Wed Jan 23 18:06:17 2008
@@ -152,7 +152,7 @@
         POINTER_SIZE_INT hashcode = (POINTER_SIZE_INT)*iter;
         iter = vector_block_iterator_advance(curr_block, iter);
         unlock(hashcode_buf->lock);
-        return *(int*)&hashcode;
+        return (int)hashcode;
       }
     }
   }
@@ -167,7 +167,7 @@
   Vector_Block* tail_block = (Vector_Block*)seq_list_end_node(list);
   vector_block_add_entry(tail_block, (POINTER_SIZE_INT) p_obj);
   POINTER_SIZE_INT hashcode_var = 0;
-  *(int*) &hashcode_var = hashcode;
+  hashcode_var = (POINTER_SIZE_INT)hashcode;
   vector_block_add_entry(tail_block, hashcode_var);
 
   if(!vector_block_is_full(tail_block)) return;
@@ -236,7 +236,7 @@
     iter =vector_block_iterator_advance(first_block, iter);
     POINTER_SIZE_INT hashcode = (POINTER_SIZE_INT)*iter;
     iter =vector_block_iterator_advance(first_block, iter);
-    hashcode_buf_add(p_obj, *(int*) &hashcode, new_buf);
+    hashcode_buf_add(p_obj, (int32)hashcode, new_buf);
   }
   first_block->tail = old_buf->checkpoint;
 
@@ -251,7 +251,7 @@
       POINTER_SIZE_INT hashcode = (POINTER_SIZE_INT)*iter;
       iter =vector_block_iterator_advance(curr_block, iter);
 
-      hashcode_buf_add(p_obj, *(int*) &hashcode, new_buf);
+      hashcode_buf_add(p_obj, (int32)hashcode, new_buf);
     }
     hashcode_buf_remove(old_buf, curr_block);
   }