fix int_to_str2 for 0
This commit is contained in:
parent
dae2e00569
commit
e43424b780
|
|
@ -104,7 +104,9 @@ int_to_str2:
|
|||
test rdi, rdi
|
||||
jnz .convert_loop
|
||||
mov byte [rsi + r12], '0'
|
||||
jmp .epilogue
|
||||
inc r13
|
||||
inc r12
|
||||
jmp .reverse
|
||||
|
||||
.convert_loop:
|
||||
mov rax, [rsp + 8] ; buffer length
|
||||
|
|
@ -129,6 +131,7 @@ int_to_str2:
|
|||
test rdi, rdi
|
||||
jnz .convert_loop
|
||||
|
||||
.reverse:
|
||||
; Reverse the digits
|
||||
mov rdx, r12
|
||||
dec r12 ; last digit index
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ fn main() {
|
|||
let value = 1234567890isize;
|
||||
let mut buffer = [0u8; 32];
|
||||
unsafe {
|
||||
let slice = int_to_str2(0, buffer.as_mut_ptr(), buffer.len(), 10);
|
||||
let s = slice.as_str();
|
||||
println!("Integer: {}, String: {}", 0, s);
|
||||
assert_eq!(s, format!("{}", 0));
|
||||
|
||||
let slice = int_to_str2(value, buffer.as_mut_ptr(), buffer.len(), 10);
|
||||
let s = slice.as_str();
|
||||
println!("Integer: {}, String: {}", value, s);
|
||||
|
|
|
|||
Loading…
Reference in a new issue