equal
deleted
inserted
replaced
529 |
529 |
530 jint frame::interpreter_frame_expression_stack_size() const { |
530 jint frame::interpreter_frame_expression_stack_size() const { |
531 // Number of elements on the interpreter expression stack |
531 // Number of elements on the interpreter expression stack |
532 // Callers should span by stackElementWords |
532 // Callers should span by stackElementWords |
533 int element_size = Interpreter::stackElementWords; |
533 int element_size = Interpreter::stackElementWords; |
|
534 size_t stack_size = 0; |
534 if (frame::interpreter_frame_expression_stack_direction() < 0) { |
535 if (frame::interpreter_frame_expression_stack_direction() < 0) { |
535 return (interpreter_frame_expression_stack() - |
536 stack_size = (interpreter_frame_expression_stack() - |
536 interpreter_frame_tos_address() + 1)/element_size; |
537 interpreter_frame_tos_address() + 1)/element_size; |
537 } else { |
538 } else { |
538 return (interpreter_frame_tos_address() - |
539 stack_size = (interpreter_frame_tos_address() - |
539 interpreter_frame_expression_stack() + 1)/element_size; |
540 interpreter_frame_expression_stack() + 1)/element_size; |
540 } |
541 } |
|
542 assert( stack_size <= (size_t)max_jint, "stack size too big"); |
|
543 return ((jint)stack_size); |
541 } |
544 } |
542 |
545 |
543 |
546 |
544 // (frame::interpreter_frame_sender_sp accessor is in frame_<arch>.cpp) |
547 // (frame::interpreter_frame_sender_sp accessor is in frame_<arch>.cpp) |
545 |
548 |