Hello, Archie

snowdosker wrote:

Today I've made changes to eliminate the requirement that _JC_FULL_ALIGNMENT
be at most sizeof(_jc_word), so this will fix the assertion in heap.c.


Just compared my local version with svn repository at Harmony project..
Don't see any changes.
Do you commit  this changes in JCVM repository ?


Yes, r378953.

Sorry for bothering you.  This number is something not very clear for me.
I'm not guru in CVS but I just checkouted latest JCVM from sourceforge ...latest modifications dates are 21.01.2006 How and where can I get diff for this changes to apply it for my local JCHEVM installation ?

Also.. today started working on assertions..
This one in vm.c under cygwin
JC_ASSERT(vm->threads.prio_min <= vm->threads.prio_max);
caused by a bit strange implementation of  * *sched.cc on cygwin
(source can be found here: http://www.koders.com/cpp/fidFCD804607170E62E066B115DCE4FCB2BEA405E30.aspx ) All functions operates (accept as params and returns) with unix-like thread priorities, mapping it to reverse windows style priorities. But for some strange reason sched_get_priority_max (int policy) and sched_get_priority_min (int policy) return windows style
reverse priorities from 15(min)  to  -14(max)
Just defined wrapping functions in i386_libjc.h and used these functions instead of original ones.
This helps.
------------------------------------------------
#if defined(__CYGWIN__)
extern inline int _jc_sched_get_priority_max(int policy){
 if (policy < 1 || policy > 3)  {
     set_errno (EINVAL);
     return -1;
   }
 return 15;
}

extern inline int _jc_sched_get_priority_min(int policy){
 if (policy < 1 || policy > 3)  {
     set_errno (EINVAL);
     return -1;
   }
 return 1;
}

#else
extern inline int _jc_sched_get_priority_max(int policy){
  return sched_get_priority_max(policy);
}

extern inline int _jc_sched_get_priority_min(int policy){
  return sched_get_priority_min(policy);
}
#endif
------------------------------------------------

The next assertion which stopped me  is one in  heap.c
_JC_ASSERT(bs->hint == NULL || (((_jc_word)bs->hint & (_JC_PAGE_SIZE - 1)) % bs->size) == _JC_HEAP_BLOCK_OFFSET);
Guess the one you was talking about...
Anyway some info which may be someway helpful with this assertion. I just printout values
(_jc_word)bs->hint = 0
(_JC_PAGE_SIZE - 1) = 4095 bs->size = 24
_JC_HEAP_BLOCK_OFFSET = 8


Thank you, Ivan


Reply via email to