Explorar el Código

avoid gc issue

Tao Wen hace 8 años
padre
commit
b67201557a
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  1. 2 1
      feature_reflect_slice.go

+ 2 - 1
feature_reflect_slice.go

@@ -142,7 +142,8 @@ func reuseSlice(slice *sliceHeader, sliceType reflect.Type, expectedCap int) {
 	if expectedCap <= slice.Cap {
 		return
 	}
-	dst := unsafe.Pointer(reflect.MakeSlice(sliceType, 0, expectedCap).Pointer())
+	newVal := reflect.MakeSlice(sliceType, 0, expectedCap)
+	dst := unsafe.Pointer(newVal.Pointer())
 	slice.Cap = expectedCap
 	slice.Data = dst
 }