Looks like someone may have just copy/pasted the RO version
public bool TryGetRefRO(Entity entity, out RefRO<T> outRef)
{
#if ENABLE_UNITY_COLLECTIONS_CHECKS
AtomicSafetyHandle.CheckReadAndThrow(m_Safety);
#endif
var ecs = m_Access->EntityComponentStore;
if (Hint.Unlikely(!ecs->Exists(entity)))
{
outRef = default;
return false;
}
void *ptr = ecs->GetOptionalComponentDataWithTypeRO(entity, m_TypeIndex, ref m_Cache);
if (ptr == null)
{
outRef = default;
return false;
}
outRef = Hint.Unlikely(m_IsZeroSized != 0) ? default
#if ENABLE_UNITY_COLLECTIONS_CHECKS
: new RefRO<T>(ptr, m_Safety);
#else
: new RefRO<T>(ptr);
#endif
return true;
}
public bool TryGetRefRW(Entity entity, out RefRW<T> outRef)
{
#if ENABLE_UNITY_COLLECTIONS_CHECKS
AtomicSafetyHandle.CheckReadAndThrow(m_Safety);
#endif
var ecs = m_Access->EntityComponentStore;
if (Hint.Unlikely(!ecs->Exists(entity)))
{
outRef = default;
return false;
}
void *ptr = ecs->GetOptionalComponentDataWithTypeRO(entity, m_TypeIndex, ref m_Cache);
if (ptr == null)
{
outRef = default;
return false;
}
#if ENABLE_UNITY_COLLECTIONS_CHECKS
: new RefRW<T>(ptr, m_Safety);
#else
: new RefRW<T>(ptr);
#endif
return true;
}```
So doesn't read by RW (and bump change filters)