From 400558abcd865f5b9ad4da2975b63eadacb9dff3 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 19 Mar 2019 20:27:29 +0000 Subject: [PATCH] Fix fmt.println a rawptr causes access violation #356 --- core/fmt/fmt.odin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/fmt/fmt.odin b/core/fmt/fmt.odin index 9c4759c4f..8657c6db7 100644 --- a/core/fmt/fmt.odin +++ b/core/fmt/fmt.odin @@ -1040,8 +1040,8 @@ fmt_value :: proc(fi: ^Info, v: any, verb: rune) { if v.id == typeid_of(^runtime.Type_Info) { write_type(fi.buf, (^^runtime.Type_Info)(v.data)^); } else { - if verb != 'p' { - ptr := (^rawptr)(v.data)^; + ptr := (^rawptr)(v.data)^; + if verb != 'p' && info.elem != nil { a := any{ptr, info.elem.id}; elem := runtime.type_info_base(info.elem); @@ -1077,7 +1077,7 @@ fmt_value :: proc(fi: ^Info, v: any, verb: rune) { } } } - fmt_pointer(fi, (^rawptr)(v.data)^, verb); + fmt_pointer(fi, ptr, verb); } case runtime.Type_Info_Array: