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 2007/04/27 07:46:36 UTC
svn commit: r532971 - in
/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact:
mspace_move_compact.cpp mspace_slide_compact.cpp
Author: xli
Date: Thu Apr 26 22:46:35 2007
New Revision: 532971
URL: http://svn.apache.org/viewvc?view=rev&rev=532971
Log:
HARMONY-3700 : GC LOS (Large object space) adaptative shrink bug: faked block address was used in comparison
Modified:
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp?view=diff&rev=532971&r1=532970&r2=532971
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_move_compact.cpp Thu Apr 26 22:46:35 2007
@@ -66,7 +66,7 @@
collector->result = FALSE;
return;
}
- if(dest_block > local_last_dest)
+ if((!local_last_dest) || (dest_block->block_idx > local_last_dest->block_idx))
local_last_dest = dest_block;
block_end = (POINTER_SIZE_INT)GC_BLOCK_END(dest_block);
dest_sector_addr = dest_block->base;
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp?view=diff&rev=532971&r1=532970&r2=532971
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/mark_compact/mspace_slide_compact.cpp Thu Apr 26 22:46:35 2007
@@ -67,7 +67,7 @@
collector->result = FALSE;
return;
}
- if(dest_block > local_last_dest)
+ if((!local_last_dest) || (dest_block->block_idx > local_last_dest->block_idx))
local_last_dest = dest_block;
dest_addr = dest_block->base;
dest_block->src = p_obj;
@@ -101,7 +101,7 @@
Block_Header *cur_last_dest = (Block_Header *)last_block_for_dest;
collector->cur_target_block = local_last_dest;
- while(local_last_dest > cur_last_dest){
+ while((local_last_dest)&&((!cur_last_dest) || (local_last_dest->block_idx > cur_last_dest->block_idx))){
atomic_casptr((volatile void **)&last_block_for_dest, local_last_dest, cur_last_dest);
cur_last_dest = (Block_Header *)last_block_for_dest;
}