Remove a mangled-name cache in the type that was sometimes stale.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22653 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
		
							parent
							
								
									1b42f2a33d
								
							
						
					
					
						commit
						252b619066
					
				
										
											Binary file not shown.
										
									
								
							| @ -98,3 +98,9 @@ int foo(out float a)    // ERROR | ||||
|     return 3.2;         // ERROR | ||||
|     foo(a);             // ERROR | ||||
| } | ||||
| 
 | ||||
| bool gen(vec3 v) | ||||
| { | ||||
|     if (abs(v[0]) < 1e-4 && abs(v[1]) < 1e-4) | ||||
|         return true; | ||||
| } | ||||
| @ -405,7 +405,7 @@ public: | ||||
|     explicit TType(TBasicType t, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0) : | ||||
|                             basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0), | ||||
|                             structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), | ||||
|                             fieldName(0), mangled(0), typeName(0) | ||||
|                             fieldName(0), typeName(0) | ||||
|                             { | ||||
|                                 sampler.clear(); | ||||
|                                 qualifier.clear(); | ||||
| @ -414,7 +414,7 @@ public: | ||||
|     TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0) : | ||||
|                             basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), arraySizes(0), | ||||
|                             structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), | ||||
|                             fieldName(0), mangled(0), typeName(0) | ||||
|                             fieldName(0), typeName(0) | ||||
|                             { | ||||
|                                 sampler.clear(); | ||||
|                                 qualifier.clear(); | ||||
| @ -424,7 +424,7 @@ public: | ||||
|                             } | ||||
|     explicit TType(const TPublicType &p) : | ||||
|                             basicType(p.basicType), vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), arraySizes(p.arraySizes), | ||||
|                             structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0), typeName(0) | ||||
|                             structure(0), structureSize(0), maxArraySize(0), arrayInformationType(0), fieldName(0), typeName(0) | ||||
|                             { | ||||
|                                 if (basicType == EbtSampler) | ||||
|                                     sampler = p.sampler; | ||||
| @ -438,7 +438,7 @@ public: | ||||
|                             } | ||||
|     TType(TTypeList* userDef, const TString& n, TStorageQualifier blockQualifier = EvqGlobal) : | ||||
|                             basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), arraySizes(0), | ||||
|                             structure(userDef), maxArraySize(0), arrayInformationType(0), fieldName(0), mangled(0) | ||||
|                             structure(userDef), maxArraySize(0), arrayInformationType(0), fieldName(0) | ||||
|                             { | ||||
|                                 sampler.clear(); | ||||
|                                 qualifier.clear(); | ||||
| @ -497,10 +497,6 @@ public: | ||||
| 		if (copyOf.typeName) | ||||
| 			typeName = NewPoolTString(copyOf.typeName->c_str()); | ||||
| 		 | ||||
| 		mangled = 0; | ||||
| 		if (copyOf.mangled) | ||||
| 			mangled = NewPoolTString(copyOf.mangled->c_str()); | ||||
| 
 | ||||
| 		structureSize = copyOf.structureSize; | ||||
| 		maxArraySize = copyOf.maxArraySize; | ||||
| 		assert(copyOf.arrayInformationType == 0); | ||||
| @ -706,15 +702,11 @@ public: | ||||
|         return totalSize; | ||||
|     } | ||||
| 
 | ||||
|     TString& getMangledName() | ||||
|     // append this type's mangled name to the passed in 'name'
 | ||||
|     void appendMangledName(TString& name) | ||||
|     { | ||||
|         if (!mangled) { | ||||
| 			mangled = NewPoolTString(""); | ||||
|             buildMangledName(*mangled); | ||||
|             *mangled += ';' ; | ||||
|         } | ||||
| 
 | ||||
|         return *mangled; | ||||
|         buildMangledName(name); | ||||
|         name += ';' ; | ||||
|     } | ||||
| 
 | ||||
|     bool sameElementType(const TType& right) const | ||||
| @ -758,7 +750,6 @@ protected: | ||||
|     int maxArraySize; | ||||
|     TType* arrayInformationType; | ||||
| 	TString *fieldName;         // for structure field names
 | ||||
|     TString *mangled; | ||||
| 	TString *typeName;          // for structure field type name
 | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -195,7 +195,7 @@ public: | ||||
|     void addParameter(TParameter& p) | ||||
|     { | ||||
|         parameters.push_back(p); | ||||
|         mangledName = mangledName + p.type->getMangledName(); | ||||
|         p.type->appendMangledName(mangledName); | ||||
|     } | ||||
| 
 | ||||
|     const TString& getMangledName() const { return mangledName; } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Kessenich
						John Kessenich