MCPcopy Create free account
hub / github.com/apache/fory / ReadData

Method ReadData

go/fory/pointer.go:138–155  ·  view source on GitHub ↗
(ctx *ReadContext, value reflect.Value)

Source from the content-addressed store, hash-verified

136}
137
138func (s *ptrToValueSerializer) ReadData(ctx *ReadContext, value reflect.Value) {
139 // Check if value is already allocated (for circular reference handling)
140 var newVal reflect.Value
141 if value.IsNil() {
142 // Allocate new value
143 newVal = reflect.New(value.Type().Elem())
144 value.Set(newVal)
145 } else {
146 // Value already allocated (circular reference case)
147 newVal = value
148 }
149
150 // Register the pointer for reference tracking BEFORE reading data
151 // This allows circular references to work correctly
152 ctx.RefResolver().Reference(value)
153
154 s.valueSerializer.ReadData(ctx, newVal.Elem())
155}
156
157func (s *ptrToValueSerializer) Read(ctx *ReadContext, refMode RefMode, readType bool, hasGenerics bool, value reflect.Value) {
158 buf := ctx.Buffer()

Callers 1

ReadMethod · 0.95

Calls 5

ReadDataMethod · 0.65
TypeMethod · 0.45
SetMethod · 0.45
ReferenceMethod · 0.45
RefResolverMethod · 0.45

Tested by

no test coverage detected