Download

FPackageName::TryConvertShortPackagePathToLongInObjectPath() create wrong path.

When I use experimental class “SRichTextBlock”, I found that “span font” key don’t work.
I think that the reason Is below.

My Input Key is <span font=“MyFontName”>Text</>, so
In FPackageName::TryConvertShortPackagePathToLongInObjectPath(const FString& ObjectPath, FString& ConvertedObjectPath) function, ObjectPath parameter is “MyFontName”.
Since DotPosition is INDEX_NONE, PackagePath is “MyFontName” and LongPackagePath is “/Game/UI/Font”(My Path).
Problem Is that ObjectName is NULL, so ConvertedObjectPath is “/Game/UI/Font/MyFontName.”.
I think that Right result is “/Game/UI/Font/MyFontName.MyFontName”, so I think This function is something wrong.

Below is Engine function code and My EngineVersion Is 4.14.3

Thanks



bool FPackageName::TryConvertShortPackagePathToLongInObjectPath(const FString& ObjectPath, FString& ConvertedObjectPath)
{
 FString PackagePath;
 FString ObjectName;

 int32 DotPosition = ObjectPaht.Find(TEXT9"."), ESearchCase::CaseSensitive);
 if(DotPosition != INDEX_NONE)
 {
  PackagePath = ObjectPath.Mid(0, DotPosition);
  ObjectName = ObjectPath.Mid(DotPosition + 1);
 }
 else
 {
  PackagePath = ObjectPath;
 }

 FString LongPackagePath;
 if(!SearchForPackageOnDisk(PackagePath, &LongPackagePath))
 {
  return false;
 }
 
 ConvertedObjectPath = FString::Printf(TEXT("%s.%s"), *LongPackagePath, *ObjectName);
 return true;
}