| 252 | } |
| 253 | |
| 254 | func (s *ptrToInterfaceSerializer) ReadData(ctx *ReadContext, value reflect.Value) { |
| 255 | // Create a new interface pointer |
| 256 | newVal := reflect.New(value.Type().Elem()) |
| 257 | |
| 258 | // Use ReadValue to handle the polymorphic interface value with ref tracking and type info |
| 259 | ctx.ReadValue(newVal.Elem(), RefModeTracking, true) |
| 260 | if ctx.HasError() { |
| 261 | return |
| 262 | } |
| 263 | |
| 264 | value.Set(newVal) |
| 265 | } |
| 266 | |
| 267 | func (s *ptrToInterfaceSerializer) Read(ctx *ReadContext, refMode RefMode, readType bool, hasGenerics bool, value reflect.Value) { |
| 268 | buf := ctx.Buffer() |