DarkestHour icon indicating copy to clipboard operation
DarkestHour copied to clipboard

Squad menu: Storing `PRI` inside `GUIList` components can cause crashes

Open shiftycats opened this issue 3 years ago • 0 comments

Can't store actors within objects due to the garbage collection bug. Need a workaround.

Offending line

https://github.com/DarklightGames/DarkestHour/blob/eea0198250ecdc0f02f238206e7a553bb33cba4c/DH_Interface/Classes/DHDeployMenu.uc#L1783

Crash report

General protection fault!

History: UObject::GetFullName <- TestReach <- UObject::GetFullName <- UStruct::SerializeBin <- (Struct XInterface.GUI.GUIListElem ExtraData[0]) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUIList Elements[0]) <- UObject::Serialize <- (DHGUIList Package.DHGUIList) <- TestReach <- (DHGUIList Package.DHGUIList) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUIListBox List[0]) <- UObject::Serialize <- (DHGUIListBox Package.DHGUIListBox) <- TestReach <- (DHGUIListBox Package.DHGUIListBox) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUISquadComponent lb_Members[0]) <- UObject::Serialize <- (DHGUISquadComponent Package.DHGUISquadComponent) <- TestReach <- (DHGUISquadComponent Package.DHGUISquadComponent) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUISquadsComponent SquadComponents[0]) <- UObject::Serialize <- (DHGUISquadsComponent Package.DHGUISquadsComponent) <- TestReach <- (DHGUISquadsComponent Package.DHGUISquadsComponent) <- UStruct::SerializeBin <- (Struct ROInterface.ROGUIProportionalContainer.ComponentPosValues Component[0]) <- UStruct::SerializeBin <- (Class ROInterface.ROGUIProportionalContainerNoSkinAlt AlignOriginalValues[0]) <- UObject::Serialize <- (ROGUIProportionalContainerNoSkinAlt Package.ROGUIProportionalContainerNoSkinAlt) <- TestReach <- (ROGUIProportionalContainerNoSkinAlt Package.ROGUIProportionalContainerNoSkinAlt) <- UStruct::SerializeBin <- (Class DH_Interface.DHDeployMenu c_Squads[0]) <- UObject::Serialize <- (DHDeployMenu Package.DHDeployMenu) <- TestReach <- (DHDeployMenu Package.DHDeployMenu) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUIMapContainer __OnSpawnPointChanged__Delegate[0]) <- UObject::Serialize <- (DHGUIMapContainer Package.DHGUIMapContainer) <- TestReach <- (DHGUIMapContainer Package.DHGUIMapContainer) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUIMapComponent __OnSpawnPointChanged__Delegate[0]) <- UObject::Serialize <- (DHGUIMapComponent Package.DHGUIMapComponent) <- TestReach <- (DHGUIMapComponent Package.DHGUIMapComponent) <- UStruct::SerializeBin <- (Class DH_Interface.DHGUIController FocusedControl[0]) <- UObject::Serialize <- (DHGUIController Package.DHGUIController) <- TestReach <- (DHGUIController Package.DHGUIController) <- UStruct::SerializeBin <- (Class GUI2K4.fntUT2k4Small Controller[0]) <- UObject::Serialize <- (fntUT2k4Small Package.fntUT2k4Small) <- TestReach <- (fntUT2k4Small Package.fntUT2k4Small) <- UStruct::SerializeBin <- (Class ROInterface.ROSTY_TextLabel Fonts[0]) <- UObject::Serialize <- (ROSTY_TextLabel Package.ROSTY_TextLabel) <- TestReach <- (ROSTY_TextLabel Package.ROSTY_TextLabel) <- UStruct::SerializeBin <- (Class GUI2K4.AltSectionBackground CaptionStyle[0]) <- UObject::Serialize <- (AltSectionBackground Package.AltSectionBackground) <- TestReach <- (AltSectionBackground Package.AltSectionBackground) <- UStruct::SerializeBin <- (Class GUI2K4.UT2K4InGameChat sb_Main[0]) <- UObject::Serialize <- (UT2K4InGameChat Package.UT2K4InGameChat) <- TestReach <- (UT2K4InGameChat Package.UT2K4InGameChat) <- UStruct::SerializeBin <- (Class DH_Interface.DHConsole __OnChat__Delegate[0]) <- UObject::Serialize <- (DHConsole Package.DHConsole) <- TestReach <- (DHConsole Package.DHConsole) <- UStruct::SerializeBin <- (Class UnrealGame.CinematicHud PlayerConsole[0]) <- UObject::Serialize <- (CinematicHud Entry.CinematicHud) <- AActor::Serialize <- TestReach <- (CinematicHud Entry.CinematicHud) <- UStruct::SerializeBin <- (Class DH_Engine.DHCinematicPlayer myHUD[0]) <- UObject::Serialize <- (DHCinematicPlayer Entry.DHCinematicPlayer) <- AActor::Serialize <- TestReach <- (DHCinematicPlayer Entry.DHCinematicPlayer) <- UStruct::SerializeBin <- (Class UnrealGame.TeamPlayerReplicationInfo Owner[0]) <- UObject::Serialize <- (TeamPlayerReplicationInfo Entry.TeamPlayerReplicationInfo) <- AActor::Serialize <- TestReach <- (TeamPlayerReplicationInfo Entry.TeamPlayerReplicationInfo) <- UStruct::SerializeBin <- (Class Engine.GameReplicationInfo PRIArray[0]) <- UObject::Serialize <- (GameReplicationInfo Entry.GameReplication

shiftycats avatar Mar 16 '21 05:03 shiftycats