Jelajahi Sumber

Type deletion protection in mPopulateTypeWorkList

Brian Fiete 3 tahun lalu
induk
melakukan
c73cf12f5e
2 mengubah file dengan 4 tambahan dan 4 penghapusan
  1. 2 3
      IDEHelper/Compiler/BfCompiler.cpp
  2. 2 1
      IDEHelper/Compiler/BfContext.cpp

+ 2 - 3
IDEHelper/Compiler/BfCompiler.cpp

@@ -9927,9 +9927,8 @@ BF_EXPORT const char* BF_CALLTYPE BfCompiler_GetCollapseRegions(BfCompiler* bfCo
 				else
 				else
 				{
 				{
 					int dollarPos = (int)emitParser->mFileName.LastIndexOf('$');
 					int dollarPos = (int)emitParser->mFileName.LastIndexOf('$');
-					if (dollarPos == -1)
-						return -1;
-					outString += emitParser->mFileName.Substring(dollarPos + 1);
+					if (dollarPos != -1)						
+						outString += emitParser->mFileName.Substring(dollarPos + 1);
 				}
 				}
 				outString += "\n";
 				outString += "\n";
 			}
 			}

+ 2 - 1
IDEHelper/Compiler/BfContext.cpp

@@ -464,7 +464,8 @@ bool BfContext::ProcessWorkList(bool onlyReifiedTypes, bool onlyReifiedMethods)
 				else
 				else
 					useModule = mUnreifiedModule;
 					useModule = mUnreifiedModule;
 			}
 			}
-			useModule->PopulateType(type, BfPopulateType_Full);			
+			if (!type->IsDeleting())
+				useModule->PopulateType(type, BfPopulateType_Full);
 			mCompiler->mStats.mQueuedTypesProcessed++;
 			mCompiler->mStats.mQueuedTypesProcessed++;
 			mCompiler->UpdateCompletion();
 			mCompiler->UpdateCompletion();
 			didWork = true;
 			didWork = true;