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