From 486caa26d7cd40e7aa9b1ca5d1360d093562eef4 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Sun, 12 Nov 2017 21:36:20 -0800 Subject: [PATCH] runtime: short-circuit typedmemmove when dst==src Change-Id: I855268a4c0d07ad602ec90f5da66422d3d87c5f2 Reviewed-on: https://go-review.googlesource.com/94595 Run-TryBot: Josh Bleecher Snyder Reviewed-by: Keith Randall --- src/runtime/mbarrier.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/runtime/mbarrier.go b/src/runtime/mbarrier.go index c446db93d2..b6c5ee0658 100644 --- a/src/runtime/mbarrier.go +++ b/src/runtime/mbarrier.go @@ -154,6 +154,9 @@ import ( // //go:nosplit func typedmemmove(typ *_type, dst, src unsafe.Pointer) { + if dst == src { + return + } if typ.kind&kindNoPointers == 0 { bulkBarrierPreWrite(uintptr(dst), uintptr(src), typ.size) } -- 2.48.1