Chromium Code Reviews| Index: syzygy/agent/asan/shadow_marker.cc |
| diff --git a/syzygy/agent/asan/shadow_marker.cc b/syzygy/agent/asan/shadow_marker.cc |
| index 0eb996a7ebf42a6005d38fba3c301fcaaabace5c..b066244db84f9eb5f1a18de02cb12f82d7c204ef 100644 |
| --- a/syzygy/agent/asan/shadow_marker.cc |
| +++ b/syzygy/agent/asan/shadow_marker.cc |
| @@ -23,9 +23,7 @@ namespace { |
| // Some constants related to the structure of shadow marker values. |
| static const uint8_t kActiveBit = 0x20; |
| -static const uint8_t kBlockEndNestedBit = 0x01; |
|
Sigurður Ásgeirsson
2016/11/22 19:15:37
I don't feel qualified to review this file.
Sébastien Marchand
2016/11/22 22:12:23
IIRC Chris wrote most of it.
|
| static const uint8_t kBlockStartDataMask = 0x7; |
| -static const uint8_t kBlockStartNestedBit = 0x08; |
| static const uint8_t kFirstNibble = 0xF0; |
| static const uint8_t kRedzoneBit = 0x80; |
| @@ -108,40 +106,24 @@ bool ShadowMarkerHelper::IsBlockStart(ShadowMarkerValue marker) { |
| return (marker.value & kMask) == kHeapHistoricBlockStartMarker0; |
| } |
| -bool ShadowMarkerHelper::IsNestedBlockStart(ShadowMarkerValue marker) { |
| - if (!IsBlockStart(marker)) |
| - return false; |
| - return (marker.value & kBlockStartNestedBit) == kBlockStartNestedBit; |
| -} |
| - |
| uint8_t ShadowMarkerHelper::GetBlockStartData(ShadowMarkerValue marker) { |
| return marker.value & kBlockStartDataMask; |
| } |
| bool ShadowMarkerHelper::IsActiveBlockEnd(ShadowMarkerValue marker) { |
| - return (marker.value & ~kBlockEndNestedBit) == |
| - kHeapBlockEndMarker; |
| + return marker.value == kHeapBlockEndMarker; |
| } |
| bool ShadowMarkerHelper::IsHistoricBlockEnd(ShadowMarkerValue marker) { |
| - return (marker.value & ~kBlockEndNestedBit) == |
| - kHeapHistoricBlockEndMarker; |
| + return marker.value == kHeapHistoricBlockEndMarker; |
| } |
| bool ShadowMarkerHelper::IsBlockEnd(ShadowMarkerValue marker) { |
| - // Block end markers have arbitrary values for the active bit |
| - // and the block end nested bit. |
| - static const uint8_t kMask = |
| - static_cast<uint8_t>(~(kActiveBit | kBlockEndNestedBit)); |
| + // Block end markers have an arbitrary value for the active bit. |
| + static const uint8_t kMask = static_cast<uint8_t>(~kActiveBit); |
| return (marker.value & kMask) == kHeapHistoricBlockEndMarker; |
| } |
| -bool ShadowMarkerHelper::IsNestedBlockEnd(ShadowMarkerValue marker) { |
| - if (!IsBlockEnd(marker)) |
| - return false; |
| - return (marker.value & kBlockEndNestedBit) == kBlockEndNestedBit; |
| -} |
| - |
| bool ShadowMarkerHelper::IsHistoricLeftRedzone(ShadowMarkerValue marker) { |
| return marker.value == kHeapHistoricLeftPaddingMarker || |
| IsHistoricBlockStart(marker); |
| @@ -178,24 +160,19 @@ ShadowMarker ShadowMarkerHelper::ToHistoric(ShadowMarkerValue marker) { |
| } |
| ShadowMarker ShadowMarkerHelper::BuildBlockStart(bool active, |
| - bool nested, |
| uint8_t data) { |
| DCHECK_EQ(0, data & ~kBlockStartDataMask); |
| uint8_t marker = kHeapHistoricBlockStartMarker0; |
| if (active) |
| marker |= kActiveBit; |
| - if (nested) |
| - marker |= kBlockStartNestedBit; |
| marker |= data; |
| return static_cast<ShadowMarker>(marker); |
| } |
| -ShadowMarker ShadowMarkerHelper::BuildBlockEnd(bool active, bool nested) { |
| +ShadowMarker ShadowMarkerHelper::BuildBlockEnd(bool active) { |
| uint8_t marker = kHeapHistoricBlockEndMarker; |
| if (active) |
| marker |= kActiveBit; |
| - if (nested) |
| - marker |= kBlockEndNestedBit; |
| return static_cast<ShadowMarker>(marker); |
| } |