void FTextFormatData::ConditionalCompile_NoLock() { // IdenticalTo compares our pointer against the static empty instance, rather than checking if our text is actually empty // This is what we want to happen since a text using the static empty instance will never become non-empty, but an empty string might (due to a culture change, or in-editor change) bool bRequiresCompile = SourceType == ESourceType::Text && !SourceText.IdenticalTo(FText::GetEmpty()); if (bRequiresCompile) { if (!CompiledTextSnapshot.IdenticalTo(SourceText)) { if (!CompiledTextSnapshot.IsDisplayStringEqualTo(SourceText)) { bRequiresCompile = true; } CompiledTextSnapshot = FTextSnapshot(SourceText); // Update this even if the text is lexically identical, as it will update the pointer compared by IdenticalTo for the next ConditionalCompile } } if (bRequiresCompile) { Compile_NoLock(); } }