浏览代码

Fix GetStringPoolIdx with non-const arg

Brian Fiete 2 年之前
父节点
当前提交
213aea8c82
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      IDEHelper/Compiler/BfModule.cpp

+ 4 - 3
IDEHelper/Compiler/BfModule.cpp

@@ -1759,12 +1759,13 @@ BfIRValue BfModule::CreateStringObjectValue(const StringImpl& str, int stringId,
 
 int BfModule::GetStringPoolIdx(BfIRValue constantStr, BfIRConstHolder* constHolder)
 {
-	BF_ASSERT(constantStr.IsConst());
-
 	if (constHolder == NULL)
 		constHolder = mBfIRBuilder;
 
 	auto constant = constHolder->GetConstant(constantStr);
+	if (constant == NULL)
+		return -1;
+
 	if (constant->mTypeCode == BfTypeCode_StringId)
 	{
 		return constant->mInt32;
@@ -2701,7 +2702,7 @@ void BfModule::UpdateSrcPos(BfAstNode* astNode, BfSrcPosFlags flags, int debugLo
 			mCurFilePosition.mCurColumn = 0;
 		}
 		else
-		{			
+		{
 			mCurFilePosition.mCurColumn++;
 		}