mirror of
https://github.com/PretendoNetwork/nex-go.git
synced 2025-04-02 11:02:14 -04:00
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.
This commit is contained in:
parent
2797330f2f
commit
eee4fc9e88
1 changed files with 3 additions and 7 deletions
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue