From 54a0095f171c4ab5e0b964e8889e81c1277a98ef Mon Sep 17 00:00:00 2001 From: Alejandro Ruiz Date: Mon, 30 Oct 2023 15:33:10 +0100 Subject: [PATCH] Fix slices --- .../fleet.cattle.io/v1alpha1/generic_map.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/apis/fleet.cattle.io/v1alpha1/generic_map.go b/pkg/apis/fleet.cattle.io/v1alpha1/generic_map.go index 0406f83b7c..c2a9e53d9e 100644 --- a/pkg/apis/fleet.cattle.io/v1alpha1/generic_map.go +++ b/pkg/apis/fleet.cattle.io/v1alpha1/generic_map.go @@ -29,8 +29,29 @@ func deepCopyMap(src, dest map[string]interface{}) { destValue := make(map[string]interface{}, len(value)) deepCopyMap(value, destValue) dest[key] = destValue + case []any: + destValue := make([]any, len(value)) + deepCopySlice(value, destValue) + dest[key] = destValue default: dest[key] = value } } } + +func deepCopySlice(src, dest []any) { + for i := range src { + switch value := src[i].(type) { + case map[string]interface{}: + destValue := make(map[string]interface{}, len(value)) + deepCopyMap(value, destValue) + dest[i] = destValue + case []any: + destValue := make([]any, len(value)) + deepCopySlice(value, destValue) + dest[i] = destValue + default: + dest[i] = value + } + } +}