| 273 | : $"unsupported root header bitmap 0x{bitmap:X2}"); |
| 274 | |
| 275 | [MethodImpl(MethodImplOptions.AggressiveInlining)] |
| 276 | private T DeserializeFromReader<T>(ByteReader reader) |
| 277 | { |
| 278 | ReadHead(reader); |
| 279 | Serializer<T> serializer = _typeResolver.GetSerializer<T>(); |
| 280 | ReadContext readContext = _readContext; |
| 281 | readContext.ResetFor(reader); |
| 282 | RefMode refMode = Config.TrackRef ? RefMode.Tracking : RefMode.NullOnly; |
| 283 | T value = serializer.Read(readContext, refMode, true); |
| 284 | readContext.RefReader.Reset(); |
| 285 | readContext._typeMetaType = null; |
| 286 | readContext._typeMeta = null; |
| 287 | readContext._typeMetaByType?.ClearKeys(); |
| 288 | readContext._readTypeInfoByType.ClearKeys(); |
| 289 | readContext._reservedRefIds.Clear(); |
| 290 | readContext._cachedTypeMetaType = null; |
| 291 | readContext._cachedTypeMeta = null; |
| 292 | readContext._currentDynamicReadDepth = 0; |
| 293 | return value; |
| 294 | } |
| 295 | |
| 296 | } |