In-class initialize all TType members.
Also remove default constructors and unused members.
Bug chromium:801648
Change-Id: I822ca1e1569708ca661796ee9252bae68a0a284a
Reviewed-on: https://swiftshader-review.googlesource.com/16948
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/compiler/OutputASM.cpp b/src/OpenGL/compiler/OutputASM.cpp
index 81cac70..2a72972 100644
--- a/src/OpenGL/compiler/OutputASM.cpp
+++ b/src/OpenGL/compiler/OutputASM.cpp
@@ -3598,7 +3598,7 @@
const BlockMemberInfo blockInfo = encoder ? encoder->encodeType(type) : BlockMemberInfo::getDefaultBlockInfo();
if(blockId >= 0)
{
- blockDefinitions[blockId][registerIndex] = TypedMemberInfo(blockInfo, type);
+ blockDefinitions[blockId].insert(BlockDefinitionIndexMap::value_type(registerIndex, TypedMemberInfo(blockInfo, type)));
shaderObject->activeUniformBlocks[blockId].fields.push_back(activeUniforms.size());
}
int fieldRegisterIndex = encoder ? shaderObject->activeUniformBlocks[blockId].registerIndex + BlockLayoutEncoder::getBlockRegister(blockInfo) : registerIndex;
diff --git a/src/OpenGL/compiler/OutputASM.h b/src/OpenGL/compiler/OutputASM.h
index a1d16f8..2cffff3 100644
--- a/src/OpenGL/compiler/OutputASM.h
+++ b/src/OpenGL/compiler/OutputASM.h
@@ -333,7 +333,6 @@
struct TypedMemberInfo : public BlockMemberInfo
{
- TypedMemberInfo() {}
TypedMemberInfo(const BlockMemberInfo& b, const TType& t) : BlockMemberInfo(b), type(t) {}
TType type;
};
diff --git a/src/OpenGL/compiler/SymbolTable.cpp b/src/OpenGL/compiler/SymbolTable.cpp
index 0269efc..2a285fc 100644
--- a/src/OpenGL/compiler/SymbolTable.cpp
+++ b/src/OpenGL/compiler/SymbolTable.cpp
@@ -34,14 +34,13 @@
int TSymbolTableLevel::uniqueId = 0;
TType::TType(const TPublicType &p) :
- type(p.type), precision(p.precision), qualifier(p.qualifier), invariant(p.invariant), layoutQualifier(p.layoutQualifier),
+ type(p.type), precision(p.precision), qualifier(p.qualifier), layoutQualifier(p.layoutQualifier),
primarySize(p.primarySize), secondarySize(p.secondarySize), array(p.array), arraySize(p.arraySize), maxArraySize(0),
- arrayInformationType(0), interfaceBlock(0), structure(0), deepestStructNesting(0), mangled(0)
+ arrayInformationType(0), interfaceBlock(0), structure(0), mangled(0)
{
if (p.userDef)
{
structure = p.userDef->getStruct();
- computeDeepestStructNesting();
}
}
@@ -106,11 +105,6 @@
return getStruct()->objectSize();
}
-void TType::computeDeepestStructNesting()
-{
- deepestStructNesting = structure ? structure->deepestNesting() : 0;
-}
-
bool TStructure::containsArrays() const
{
for(const auto& field : *mFields)
diff --git a/src/OpenGL/compiler/Types.h b/src/OpenGL/compiler/Types.h
index 4b11498..6c82f80 100644
--- a/src/OpenGL/compiler/Types.h
+++ b/src/OpenGL/compiler/Types.h
@@ -240,33 +240,32 @@
{
public:
POOL_ALLOCATOR_NEW_DELETE();
- TType() {}
TType(TBasicType t, int s0 = 1, int s1 = 1) :
- type(t), precision(EbpUndefined), qualifier(EvqGlobal), invariant(false), layoutQualifier(TLayoutQualifier::create()),
+ type(t), precision(EbpUndefined), qualifier(EvqGlobal), layoutQualifier(TLayoutQualifier::create()),
primarySize(s0), secondarySize(s1), array(false), arraySize(0), maxArraySize(0), arrayInformationType(0), interfaceBlock(0),
- structure(0), deepestStructNesting(0), mangled(0)
+ structure(0), mangled(0)
{
}
TType(TBasicType t, TPrecision p, TQualifier q = EvqTemporary, int s0 = 1, int s1 = 1, bool a = false) :
- type(t), precision(p), qualifier(q), invariant(false), layoutQualifier(TLayoutQualifier::create()),
+ type(t), precision(p), qualifier(q), layoutQualifier(TLayoutQualifier::create()),
primarySize(s0), secondarySize(s1), array(a), arraySize(0), maxArraySize(0), arrayInformationType(0), interfaceBlock(0),
- structure(0), deepestStructNesting(0), mangled(0)
+ structure(0), mangled(0)
{
}
explicit TType(const TPublicType &p);
TType(TStructure* userDef, TPrecision p = EbpUndefined) :
- type(EbtStruct), precision(p), qualifier(EvqTemporary), invariant(false), layoutQualifier(TLayoutQualifier::create()),
+ type(EbtStruct), precision(p), qualifier(EvqTemporary), layoutQualifier(TLayoutQualifier::create()),
primarySize(1), secondarySize(1), array(false), arraySize(0), maxArraySize(0), arrayInformationType(0), interfaceBlock(0),
- structure(userDef), deepestStructNesting(0), mangled(0)
+ structure(userDef),mangled(0)
{
}
TType(TInterfaceBlock *interfaceBlockIn, TQualifier qualifierIn,
TLayoutQualifier layoutQualifierIn, int arraySizeIn)
: type(EbtInterfaceBlock), precision(EbpUndefined), qualifier(qualifierIn),
- invariant(false), layoutQualifier(layoutQualifierIn),
+ layoutQualifier(layoutQualifierIn),
primarySize(1), secondarySize(1), array(arraySizeIn > 0), arraySize(arraySizeIn), maxArraySize(0), arrayInformationType(0),
- interfaceBlock(interfaceBlockIn), structure(0), deepestStructNesting(0), mangled(0)
+ interfaceBlock(interfaceBlockIn), structure(0), mangled(0)
{
}
@@ -279,8 +278,6 @@
TQualifier getQualifier() const { return qualifier; }
void setQualifier(TQualifier q) { qualifier = q; }
- bool isInvariant() const { return invariant; }
-
TLayoutQualifier getLayoutQualifier() const { return layoutQualifier; }
void setLayoutQualifier(TLayoutQualifier lq) { layoutQualifier = lq; }
@@ -450,7 +447,7 @@
bool isScalarInt() const { return isScalar() && IsInteger(type); }
TStructure* getStruct() const { return structure; }
- void setStruct(TStructure* s) { structure = s; computeDeepestStructNesting(); }
+ void setStruct(TStructure* s) { structure = s; }
TString& getMangledName() {
if (!mangled) {
@@ -530,27 +527,24 @@
protected:
void buildMangledName(TString&);
size_t getStructSize() const;
- void computeDeepestStructNesting();
- TBasicType type;
- TPrecision precision;
- TQualifier qualifier;
- bool invariant;
+ TBasicType type = EbtVoid;
+ TPrecision precision = EbpUndefined;
+ TQualifier qualifier = EvqTemporary;
+ unsigned char primarySize = 0; // size of vector or matrix, not size of array
+ unsigned char secondarySize = 0; // 1 for vectors, > 1 for matrices
+ bool array = false;
+ int arraySize = 0;
+ int maxArraySize = 0;
+ TType *arrayInformationType = nullptr;
+
+ // null unless this is an interface block, or interface block member variable
+ TInterfaceBlock *interfaceBlock = nullptr;
TLayoutQualifier layoutQualifier;
- unsigned char primarySize; // size of vector or matrix, not size of array
- unsigned char secondarySize; // secondarySize: 1 for vectors, >1 for matrices
- bool array;
- int arraySize;
- int maxArraySize;
- TType *arrayInformationType;
- // 0 unless this is an interface block, or interface block member variable
- TInterfaceBlock *interfaceBlock;
+ TStructure *structure = nullptr; // null unless this is a struct
- TStructure *structure; // 0 unless this is a struct
- int deepestStructNesting;
-
- TString *mangled;
+ TString *mangled = nullptr;
};
//