Thanks Jakob, let us know how you get on
Geoff
[Attachment Removed]
Thanks Jakob, let us know how you get on
Geoff
[Attachment Removed]
Thanks for keeping it opened Jakob, notified Epic about this case. If for any reason it closes feel free to open it again.
[Attachment Removed]
Hi Jakob,
Sorry for the delay. We have noticied Epic again.
[Attachment Removed]
Hi Jakob,
The CL is: 33489816
This is the message of the changelist made by the developer:
FConfigBranch Phase 2:
- Making use of unload configs in PluginManager, GameFeaturePlugins, and HotFixes
- To help with memory increase from the branch memory for unloadable configs, I added FConfigCacheIni::SafeUnload(BranchName), which can unload the memory usage by a branch, but then will on-demand reload the hierarchy if accessed
- Used SafeUnload to GGameplayTagsIni because that is read once and cached
- Various other minor optimizations, like not creating hundreds of empty configs in GConfig,
- Added “config memusage” (similar to configmem as it turns out)
- Removed some old deprecated code
- Added ability for editor to remember and write out comments in .ini files
- Changed commandline ini overrides to a dynamic layer (this is a work in progress - old method is still in there - it’s tied to the ini.UseNewDynamicLayers cvar - old GFP code used the old way, etc, which i still support)
- Experimental support for runtime config change tracking, so saving out .ini files will have more context about how the user changed a config section (mostly important for arrays). This is not fully functional yet [WILL PROBABLY REMOVE]
- Experimental new config layer expansion system that uses FPaths::ConvertPath to find Restricted/Platform locations, instead of hardcoding
Before UE 5.5:
if (!Result && !bAreFileOperationsDisabled)
{
Result = &Add(Filename, FConfigFile());
UE_LOG(LogConfig, Verbose, TEXT("GConfig::Find is looking for file: %s"), *Filename);
if (DoesConfigFileExistWrapper(*Filename))
{
//...
Here, the file was being added to the FConfigFile map when Result was not found. With that CL, the Add operation was moved deeper into the next if condition.
After 5.5, the Add operation is now one condition deeper, and as a result it is no longer executed. That Add call was what previously created the temporary .ini file you were receiving.
if (!Result && !bAreFileOperationsDisabled)
{
// Before attempting to add another file, double check that this doesn't exist at a normalized path.
const FString UnrealFileName = NormalizeConfigIniPath(Filename);
Result = FindConfigFile(UnrealFileName);
if (!Result)
{
if (DoesConfigFileExistWrapper(*UnrealFileName))
{
Result = &Add(UnrealFileName, FConfigFile());
//...
[Attachment Removed]
FileName is a bad variable name. Code has changed as I worked on it.
FileName is actually the full path, including filename, to the new file I want to save it to.
I’ll test your code and get back.
[Attachment Removed]