420 int callee_locals = 0; |
420 int callee_locals = 0; |
421 for (int index = 0; index < array->frames(); index++ ) { |
421 for (int index = 0; index < array->frames(); index++ ) { |
422 // frame[number_of_frames - 1 ] = on_stack_size(youngest) |
422 // frame[number_of_frames - 1 ] = on_stack_size(youngest) |
423 // frame[number_of_frames - 2 ] = on_stack_size(sender(youngest)) |
423 // frame[number_of_frames - 2 ] = on_stack_size(sender(youngest)) |
424 // frame[number_of_frames - 3 ] = on_stack_size(sender(sender(youngest))) |
424 // frame[number_of_frames - 3 ] = on_stack_size(sender(sender(youngest))) |
425 int caller_parms = callee_parameters; |
425 frame_sizes[number_of_frames - 1 - index] = BytesPerWord * array->element(index)->on_stack_size(callee_parameters, |
426 if ((index == array->frames() - 1) && caller_was_method_handle) { |
|
427 caller_parms = 0; |
|
428 } |
|
429 frame_sizes[number_of_frames - 1 - index] = BytesPerWord * array->element(index)->on_stack_size(caller_parms, |
|
430 callee_parameters, |
|
431 callee_locals, |
426 callee_locals, |
432 index == 0, |
427 index == 0, |
433 index == array->frames() - 1, |
|
434 popframe_extra_args); |
428 popframe_extra_args); |
435 // This pc doesn't have to be perfect just good enough to identify the frame |
429 // This pc doesn't have to be perfect just good enough to identify the frame |
436 // as interpreted so the skeleton frame will be walkable |
430 // as interpreted so the skeleton frame will be walkable |
437 // The correct pc will be set when the skeleton frame is completely filled out |
431 // The correct pc will be set when the skeleton frame is completely filled out |
438 // The final pc we store in the loop is wrong and will be overwritten below |
432 // The final pc we store in the loop is wrong and will be overwritten below |