Commit 80943776 by Shahbaz Youssefi Committed by Commit Bot

Refactor TType's constructors

Instead of duplicating the initialization of every field, use one of the constructors to initialize the other ones. Bug: angleproject:3569 Change-Id: Ie342111218235ecb4124deb2f0147f97cdbed51a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1972889Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
parent f5c3afec
......@@ -123,55 +123,14 @@ const char *getBasicString(TBasicType t)
}
// TType implementation.
TType::TType()
: type(EbtVoid),
precision(EbpUndefined),
qualifier(EvqGlobal),
invariant(false),
precise(false),
memoryQualifier(TMemoryQualifier::Create()),
layoutQualifier(TLayoutQualifier::Create()),
primarySize(0),
secondarySize(0),
mArraySizes(nullptr),
mInterfaceBlock(nullptr),
mStructure(nullptr),
mIsStructSpecifier(false),
mMangledName(nullptr)
{}
TType::TType() : TType(EbtVoid, 0, 0) {}
TType::TType(TBasicType t, unsigned char ps, unsigned char ss)
: type(t),
precision(EbpUndefined),
qualifier(EvqGlobal),
invariant(false),
precise(false),
memoryQualifier(TMemoryQualifier::Create()),
layoutQualifier(TLayoutQualifier::Create()),
primarySize(ps),
secondarySize(ss),
mArraySizes(nullptr),
mInterfaceBlock(nullptr),
mStructure(nullptr),
mIsStructSpecifier(false),
mMangledName(nullptr)
: TType(t, EbpUndefined, EvqGlobal, ps, ss)
{}
TType::TType(TBasicType t, TPrecision p, TQualifier q, unsigned char ps, unsigned char ss)
: type(t),
precision(p),
qualifier(q),
invariant(false),
precise(false),
memoryQualifier(TMemoryQualifier::Create()),
layoutQualifier(TLayoutQualifier::Create()),
primarySize(ps),
secondarySize(ss),
mArraySizes(nullptr),
mInterfaceBlock(nullptr),
mStructure(nullptr),
mIsStructSpecifier(false),
mMangledName(nullptr)
: TType(t, p, q, ps, ss, nullptr)
{}
TType::TType(const TPublicType &p)
......@@ -204,57 +163,25 @@ TType::TType(const TPublicType &p)
}
TType::TType(const TStructure *userDef, bool isStructSpecifier)
: type(EbtStruct),
precision(EbpUndefined),
qualifier(EvqTemporary),
invariant(false),
precise(false),
memoryQualifier(TMemoryQualifier::Create()),
layoutQualifier(TLayoutQualifier::Create()),
primarySize(1),
secondarySize(1),
mArraySizes(nullptr),
mInterfaceBlock(nullptr),
mStructure(userDef),
mIsStructSpecifier(isStructSpecifier),
mMangledName(nullptr)
{}
: TType(EbtStruct, EbpUndefined, EvqTemporary, 1, 1)
{
mStructure = userDef;
mIsStructSpecifier = isStructSpecifier;
}
TType::TType(const TInterfaceBlock *interfaceBlockIn,
TQualifier qualifierIn,
TLayoutQualifier layoutQualifierIn)
: type(EbtInterfaceBlock),
precision(EbpUndefined),
qualifier(qualifierIn),
invariant(false),
precise(false),
memoryQualifier(TMemoryQualifier::Create()),
layoutQualifier(layoutQualifierIn),
primarySize(1),
secondarySize(1),
mArraySizes(nullptr),
mInterfaceBlock(interfaceBlockIn),
mStructure(0),
mIsStructSpecifier(false),
mMangledName(nullptr)
{}
: TType(EbtInterfaceBlock, EbpUndefined, qualifierIn, 1, 1)
{
layoutQualifier = layoutQualifierIn;
mInterfaceBlock = interfaceBlockIn;
}
TType::TType(const TType &t)
: type(t.type),
precision(t.precision),
qualifier(t.qualifier),
invariant(t.invariant),
precise(t.precise),
memoryQualifier(t.memoryQualifier),
layoutQualifier(t.layoutQualifier),
primarySize(t.primarySize),
secondarySize(t.secondarySize),
mArraySizes(t.mArraySizes ? new TVector<unsigned int>(*t.mArraySizes) : nullptr),
mInterfaceBlock(t.mInterfaceBlock),
mStructure(t.mStructure),
mIsStructSpecifier(t.mIsStructSpecifier),
mMangledName(t.mMangledName)
{}
{
*this = t;
}
TType &TType::operator=(const TType &t)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment