|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, in BinaryReaderObjdumpDisassemble::BeginFunctionBody,
we had:
local_index_ = objdump_state_->function_param_counts[index];
where index is the index of the function i.e. we treat the keys of
function_param_counts as function indices.
However, function_param_counts is populated in OnFuncType with:
objdump_state_->function_param_counts[index] = param_count;
where index is the index of the type i.e. we treat the keys of
function_param_counts as type indices.
This discrepancy would cause the locals to be incorrectly numbered
in the "Code Disassembly" section.
This fixes the discrepancy by adding a new field, function_types,
which maps from function indices to type indices, and is populated
in BinaryReaderObjdump::OnFunction. This field is used in
BinaryReaderObjdumpDisassemble::BeginFunctionBody to get the type
index for the given function, which is then used to get the
parameter count.
Fixes #2264.
|