1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Improved debugger string comparison

This commit is contained in:
Brian Fiete 2024-12-29 11:36:49 -08:00
parent 1b6d9808f3
commit 0bdfea7231
3 changed files with 33 additions and 14 deletions

View file

@ -5934,8 +5934,13 @@ void DbgExprEvaluator::PerformBinaryOperation(ASTREF(BfExpression*)& leftExpress
auto& displayStringList = debugVis->mStringViews;
DwFormatInfo formatInfo;
formatInfo.mCallStackIdx = mCallStackIdx;
formatInfo.mRawString = true;
formatInfo.mLanguage = language;
formatInfo.mNamespaceSearch = mNamespaceSearchStr;
formatInfo.mExplicitThis = mExplicitThis;
if (mReferenceId != NULL)
formatInfo.mReferenceId = *mReferenceId;
if (!displayEntry->mCondition.empty())
{
if (!mDebugger->EvalCondition(debugVis, dbgCompileUnit, useTypedValue, formatInfo, displayEntry->mCondition, dbgVisWildcardCaptures, displayString))
@ -5943,14 +5948,15 @@ void DbgExprEvaluator::PerformBinaryOperation(ASTREF(BfExpression*)& leftExpress
}
String displayStr = mDebugger->mDebugManager->mDebugVisualizers->DoStringReplace(displayEntry->mString, dbgVisWildcardCaptures);
mDebugger->ProcessEvalString(dbgCompileUnit, useTypedValue, displayStr, displayString, formatInfo, debugVis, false);
if (mDebugger->ProcessEvalString(dbgCompileUnit, useTypedValue, displayStr, displayString, formatInfo, debugVis, false))
{
bool isEq = displayString == resultTypedValue->mCharPtr;
bool isEq = displayString == resultTypedValue->mCharPtr;
auto boolType = mDbgModule->GetPrimitiveType(DbgType_Bool, GetLanguage());
mResult.mType = boolType;
mResult.mBool = isEq == ((binaryOp == BfBinaryOp_Equality) || (binaryOp == BfBinaryOp_StrictEquality));
return;
auto boolType = mDbgModule->GetPrimitiveType(DbgType_Bool, GetLanguage());
mResult.mType = boolType;
mResult.mBool = isEq == ((binaryOp == BfBinaryOp_Equality) || (binaryOp == BfBinaryOp_StrictEquality));
return;
}
}
}
}