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/08/17 06:40:45 UTC
svn commit: r566916 - in /harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los:
lspace.h lspace_alloc_collect.cpp
Author: xli
Date: Thu Aug 16 21:40:44 2007
New Revision: 566916
URL: http://svn.apache.org/viewvc?view=rev&rev=566916
Log:
fix an issue in Runtime.freeMemory
Modified:
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace.h
harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace_alloc_collect.cpp
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace.h?view=diff&rev=566916&r1=566915&r2=566916
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace.h Thu Aug 16 21:40:44 2007
@@ -50,7 +50,7 @@
/*LOS_Shrink:This field stands for sliding compact to lspace */
Boolean move_object;
- /* Size allocted since last minor collection. */
+ /* Size allocted since last collection. */
volatile uint64 last_alloced_size;
/* Size allocted since last major collection. */
uint64 accumu_alloced_size;
@@ -86,7 +86,8 @@
inline POINTER_SIZE_INT lspace_free_memory_size(Lspace* lspace)
{ /* FIXME:: */
- return (lspace->committed_heap_size - (POINTER_SIZE_INT)lspace->last_surviving_size);
+ assert(lspace->committed_heap_size > (POINTER_SIZE_INT)lspace->last_surviving_size + (POINTER_SIZE_INT)lspace->last_alloced_size);
+ return (lspace->committed_heap_size - (POINTER_SIZE_INT)lspace->last_surviving_size - (POINTER_SIZE_INT)lspace->last_alloced_size);
}
inline POINTER_SIZE_INT lspace_committed_size(Lspace* lspace){ return lspace->committed_heap_size; }
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace_alloc_collect.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace_alloc_collect.cpp?view=diff&rev=566916&r1=566915&r2=566916
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace_alloc_collect.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/los/lspace_alloc_collect.cpp Thu Aug 16 21:40:44 2007
@@ -285,7 +285,6 @@
lspace->scompact_fa_start = dest_addr;
lspace->scompact_fa_end= lspace->heap_end;
- lspace->last_surviving_size = (POINTER_SIZE_INT)dest_addr - (POINTER_SIZE_INT)lspace->heap_start;
return;
}
@@ -372,6 +371,7 @@
// lspace->accumu_alloced_size = 0;
// lspace->last_alloced_size = 0;
lspace->period_surviving_size = (POINTER_SIZE_INT)lspace->scompact_fa_start - (POINTER_SIZE_INT)lspace->heap_start;
+ lspace->last_surviving_size = lspace->period_surviving_size;
lspace->survive_ratio = (float)lspace->accumu_alloced_size / (float)lspace->committed_heap_size;
los_boundary = lspace->heap_end;