From eee4fc9e887cceab0f8a35e3d6cd7f3178d146fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20L=C3=B3pez=20Guimaraes?= Date: Tue, 24 Dec 2024 13:08:01 +0000 Subject: [PATCH] fix(AnyDataHolder): Use CopyRef to get RVTypePtr of object data The previous method didn't work because it was making a pointer of the RVType interface instead of the underlying data. --- types/any_data_holder.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/types/any_data_holder.go b/types/any_data_holder.go index 0791064..7310f81 100644 --- a/types/any_data_holder.go +++ b/types/any_data_holder.go @@ -1,7 +1,6 @@ package types import ( - "errors" "fmt" "strings" ) @@ -66,17 +65,14 @@ func (adh *AnyDataHolder) ExtractFrom(readable Readable) error { return fmt.Errorf("Unknown AnyDataHolder type: %s", typeName) } - adh.ObjectData = AnyDataHolderObjects[typeName].Copy() - - ptr, ok := any(&adh.ObjectData).(RVTypePtr) - if !ok { - return errors.New("AnyDataHolder object data is not a valid RVType. Missing ExtractFrom pointer receiver") - } + ptr := AnyDataHolderObjects[typeName].CopyRef() if err := ptr.ExtractFrom(readable); err != nil { return fmt.Errorf("Failed to read AnyDataHolder object data. %s", err.Error()) } + adh.ObjectData = ptr.Deref() + return nil }