fix: 修复新节VA的计算方式
This commit is contained in:
parent
7346f40592
commit
9f6c18949e
@ -215,7 +215,7 @@ impl AppState {
|
||||
rw_mmap[new_section_header_offset..new_section_header_offset + 8]
|
||||
.copy_from_slice(§ion_name_bytes);
|
||||
// 写入节的VA
|
||||
// TODO: 新节的VA应该是最后一个节的VA + section_size对齐后的大小
|
||||
// TODO: 新节的VA应该是最后一个节的VA + 最后一个节的SizeOfRawData对齐后的大小
|
||||
let last_section_header_offset =
|
||||
section_table_offset + 40 * (number_of_sections - 1) as usize;
|
||||
let last_section_va = u32::from_le_bytes(
|
||||
@ -223,8 +223,16 @@ impl AppState {
|
||||
.try_into()
|
||||
.unwrap(),
|
||||
);
|
||||
// 对齐后的VA, 对齐方式(last_section_va + section_size) 和section_alignment进行对齐
|
||||
let aligned_va = (last_section_va + section_size as u32 + section_alignment - 1)
|
||||
let last_sction_size = u32::from_le_bytes(
|
||||
rw_mmap[last_section_header_offset + 16..last_section_header_offset + 20]
|
||||
.try_into()
|
||||
.unwrap(),
|
||||
);
|
||||
let last_section_alignment_size = (last_sction_size + section_alignment - 1)
|
||||
& !(section_alignment - 1);
|
||||
|
||||
// 对齐后的VA, 对齐方式(last_section_va ) 和section_alignment进行对齐
|
||||
let aligned_va = ((last_section_va + last_section_alignment_size) + section_alignment - 1)
|
||||
& !(section_alignment - 1);
|
||||
|
||||
rw_mmap[new_section_header_offset + 12..new_section_header_offset + 16]
|
||||
|
@ -260,7 +260,7 @@ export default function FileHeader() {
|
||||
return (
|
||||
<NodeTableComponent
|
||||
dataTemplate={dataTemplate}
|
||||
defaultData={data}
|
||||
defaultData={data as any}
|
||||
columns={columns as any}
|
||||
></NodeTableComponent>
|
||||
);
|
||||
|
@ -57,7 +57,7 @@ export default function NTHeader() {
|
||||
|
||||
return (
|
||||
<NodeTableComponent
|
||||
defaultData={data}
|
||||
defaultData={data as any}
|
||||
dataTemplate={dataTemplate}
|
||||
columns={columns as any}
|
||||
></NodeTableComponent>
|
||||
|
@ -530,7 +530,7 @@ export default function OptionalHeader() {
|
||||
return (
|
||||
<NodeTableComponent
|
||||
dataTemplate={is64 ? dataTemplate64 : dataTemplate}
|
||||
defaultData={data}
|
||||
defaultData={data as any}
|
||||
columns={columns as any}
|
||||
></NodeTableComponent>
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user