void Thread::set_stack_limit(address value) { #ifdef UNDER_CE value = (address)((int)value | _system_address); #endif int_field_put(stack_limit_offset(), (jint) value); if (Scheduler::get_gc_current_thread() != NULL) { // in a gc so check the old current thread pointer if (this->obj() == Scheduler:: get_gc_current_thread()) { update_current_stack_limit(this); } } else { if (Thread::current()->equals(this)) { update_current_stack_limit(this); } } }
// Accessors for the stack limit address stack_limit() const { return (address) int_field(stack_limit_offset()); }