Skip to content

Commit b9e3762

Browse files
committed
Resolve review comment
1 parent 57af460 commit b9e3762

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

objdiff-core/src/obj/mdebug.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,21 @@ pub(super) fn parse_line_info_mdebug(
101101
}
102102

103103
let local_index = pdr.isym as u32;
104-
let mut size = None;
104+
let mut end_value = None;
105105
for sym in &symbols[global_sym_index..sym_end] {
106106
if sym.st == ST_END && sym.index == local_index {
107-
size = Some(sym.value);
107+
end_value = Some(sym.value);
108108
break;
109109
}
110110
}
111+
let Some(end_value) = end_value else {
112+
continue;
113+
};
114+
let start_value = start_symbol.value;
115+
let mut size = end_value.checked_sub(start_value);
116+
if size.is_none() || size == Some(0) {
117+
size = end_value.checked_sub(pdr.addr);
118+
}
111119
let Some(size) = size else {
112120
continue;
113121
};

0 commit comments

Comments
 (0)