| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/gwp_asan/common/lightweight_detector_state.h" |
| |
| #include "base/compiler_specific.h" |
| |
| namespace gwp_asan::internal { |
| |
| bool LightweightDetectorState::IsValid() const { |
| if (!metadata_addr) { |
| return false; |
| } |
| |
| if (num_metadata > kMaxMetadata) { |
| return false; |
| } |
| |
| return true; |
| } |
| |
| LightweightDetectorState::SlotMetadata::SlotMetadata() = default; |
| |
| LightweightDetectorState::SlotMetadata& |
| LightweightDetectorState::GetSlotMetadataById( |
| MetadataId id, |
| LightweightDetectorState::SlotMetadata* metadata_arr) { |
| return UNSAFE_TODO(metadata_arr[id % num_metadata]); |
| } |
| |
| bool LightweightDetectorState::HasMetadataForId( |
| MetadataId id, |
| LightweightDetectorState::SlotMetadata* metadata_arr) { |
| return GetSlotMetadataById(id, metadata_arr).id == id; |
| } |
| |
| } // namespace gwp_asan::internal |