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; |
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); |
} |