HomeWildfire Games

Removes raw pointers management from sprites owned by CGUI.

Description

Removes raw pointers management from sprites owned by CGUI.

Event Timeline

Langbart raised a concern with this commit.Jun 6 2021, 7:47 AM
Langbart added a subscriber: Langbart.

I get a segmentation fault` when starting a match:

(lldb) bt
* thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
  * frame #0: 0x0000000100470803 pyrogenesis`CGUISprite::AddImage(std::__1::unique_ptr<SGUIImage, std::__1::default_delete<SGUIImage> >) [inlined] std::__1::unique_ptr<SGUIImage, std::__1::default_delete<SGUIImage> >& std::__1::vector<std::__1::unique_ptr<SGUIImage, std::__1::default_delete<SGUIImage> >, std::__1::allocator<std::__1::unique_ptr<SGUIImage, std::__1::default_delete<SGUIImage> > > >::emplace_back<std::__1::unique_ptr<SGUIImage, std::__1::default_delete<SGUIImage> > >(this=<unavailable>, __args=<unavailable>) at vector:1681:15 [opt]
    frame #1: 0x0000000100470803 pyrogenesis`CGUISprite::AddImage(this=0x0000000000000000, image=SGUIImage @ 0x000000013556f4d0) at CGUISprite.cpp:26 [opt]
    frame #2: 0x000000010047fcb5 pyrogenesis`GUIRenderer::UpdateDrawCallCache(pGUI=0x000000011fa20d90, Calls=<unavailable>, SpriteName=0x000000013854f898, Size=0x000000013854f548, Sprites=size=138) at GUIRenderer.cpp:167:12 [opt]
    frame #3: 0x0000000100470ae8 pyrogenesis`CGUISpriteInstance::Draw(this=0x000000013854f898, pGUI=0x000000011fa20d90, canvas=0x00007ffeefbff218, Size=0x000000013854f548, Sprites=size=138) const at CGUISprite.cpp:33:3 [opt]
    frame #4: 0x000000010049ad14 pyrogenesis`CImage::Draw(this=<unavailable>, canvas=<unavailable>) at CImage.cpp:36:9 [opt]
    frame #5: 0x000000010045823c pyrogenesis`CGUI::Draw(this=<unavailable>) at CGUI.cpp:346:25 [opt]
    frame #6: 0x000000010047837e pyrogenesis`CGUIManager::Draw(this=<unavailable>) const at GUIManager.cpp:374:10 [opt]
    frame #7: 0x0000000100203ca4 pyrogenesis`Render() at GameSetup.cpp:263:10 [opt]
    frame #8: 0x0000000100004033 pyrogenesis`RunGameOrAtlas(int, char const**) [inlined] Frame() at main.cpp:448:3 [opt]
    frame #9: 0x00000001000037a0 pyrogenesis`RunGameOrAtlas(argc=<unavailable>, argv=<unavailable>) at main.cpp:691 [opt]
    frame #10: 0x0000000100001f76 pyrogenesis`main(argc=1, argv=0x00007ffeefbffa18) at main.cpp:743:2 [opt]
    frame #11: 0x00007fff6b78dcc9 libdyld.dylib`start + 1
    frame #12: 0x00007fff6b78dcc9 libdyld.dylib`start + 1
This commit now has outstanding concerns.Jun 6 2021, 7:48 AM
This commit no longer requires audit.Jun 6 2021, 9:41 AM
wraitii raised a concern with this commit.Jun 6 2021, 9:45 AM
wraitii added a subscriber: wraitii.

(reraising so this isn't forgotten)

@vladislavbelov I did a hotfix in rP25698 which I think is clean but you probably want to give it another look.

This commit now has outstanding concerns.Jun 6 2021, 9:45 AM
wraitii resigned from this commit.Jun 6 2021, 11:38 AM
This commit no longer requires audit.Jun 6 2021, 11:38 AM