summaryrefslogtreecommitdiffhomepage
path: root/tools/go_generics
diff options
context:
space:
mode:
authorJamie Liu <jamieliu@google.com>2020-10-23 12:51:29 -0700
committergVisor bot <gvisor-bot@google.com>2020-10-23 12:53:20 -0700
commit227fd9f1b0a9123446907a662a5fe8e756cac16d (patch)
tree31c92a5863202c3e63b41468fa9c75ef5453ff1d /tools/go_generics
parent8db147b55423d7dbe5f9af4e6154eab2d19025e1 (diff)
//pkg/state fixes for VFS2.
- When encodeState.resolve() determines that the resolved reflect.Value is contained by a previously-resolved object, set wire.Ref.Type to the containing object's type (existing.obj.Type()) rather than the contained value's type (obj.Type()). - When encodeState.resolve() determines that the resolved reflect.Value contains a previously-resolved object, handle cases where the new object contains *multiple* previously-resolved objects. (This may cause previously-allocated object IDs to become unused; to facilitate this, change encodeState.pending to a map, and change the wire format to prefix each object with its object ID.) - Add encodeState.encodedStructs to avoid redundant encoding of structs, since deduplication of objects via encodeState.resolve() doesn't work for objects instantiated by StateSave() and passed to SaveValue() (i.e. fields tagged `state:".(whatever)"`). - Make unexported array fields deserializable via slices that refer to them by casting away their unexportedness in decodeState.decodeObject(). Updates #1663 PiperOrigin-RevId: 338727687
Diffstat (limited to 'tools/go_generics')
0 files changed, 0 insertions, 0 deletions