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

Method GetTypeMetaCacheEntry

csharp/src/Fory/TypeInfo.cs:671–696  ·  view source on GitHub ↗
(bool trackRef)

Source from the content-addressed store, hash-verified

669 }
670
671 internal TypeMetaCacheEntry GetTypeMetaCacheEntry(bool trackRef)
672 {
673 if (trackRef)
674 {
675 if (_typeMetaTrackRef.HasValue)
676 {
677 return _typeMetaTrackRef.Value;
678 }
679 }
680 else if (_typeMetaNoTrackRef.HasValue)
681 {
682 return _typeMetaNoTrackRef.Value;
683 }
684
685 lock (_typeMetaCacheLock)
686 {
687 if (trackRef)
688 {
689 _typeMetaTrackRef ??= BuildTypeMetaCacheEntry(trackRef: true);
690 return _typeMetaTrackRef.Value;
691 }
692
693 _typeMetaNoTrackRef ??= BuildTypeMetaCacheEntry(trackRef: false);
694 return _typeMetaNoTrackRef.Value;
695 }
696 }
697
698 private TypeMetaCacheEntry BuildTypeMetaCacheEntry(bool trackRef)
699 {

Calls

no outgoing calls