Why duplicate "protected:" in SmallVector.h, StringMap.h?

In SmallVector.h:

class SmallVectorBase {
protected:
void *BeginX, *EndX, *CapacityX;

protected:
SmallVectorBase(void FirstEl, size_t Size)
: BeginX(FirstEl), EndX(FirstEl), CapacityX((char
)FirstEl+Size) {}

In StringMap.h:

class StringMapImpl {
protected:
// Array of NumBuckets pointers to entries, null pointers are holes.
// TheTable[NumBuckets] contains a sentinel value for easy iteration. Followed
// by an array of the actual hash values as unsigned integers.
StringMapEntryBase **TheTable;
unsigned NumBuckets;
unsigned NumItems;
unsigned NumTombstones;
unsigned ItemSize;

protected:
explicit StringMapImpl(unsigned itemSize)
: TheTable(nullptr),

is the second “protected:” a coding style that should be preserved?

Nope, don’t believe it’s any intentional coding style - I wouldn’t worry about preserving them when making changes, but I probably wouldn’t go out of my way to remove them all either.

OK, thanks!