hasufell 14/06/17 20:44:56 Added: 0ad-0.0.16_alpha-gcc-4.9.patch Log: add patch that fixes UD, fix HOMEPAGE (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key BDEED020)
Revision Changes Path 1.1 games-strategy/0ad/files/0ad-0.0.16_alpha-gcc-4.9.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/games-strategy/0ad/files/0ad-0.0.16_alpha-gcc-4.9.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/games-strategy/0ad/files/0ad-0.0.16_alpha-gcc-4.9.patch?rev=1.1&content-type=text/plain Index: 0ad-0.0.16_alpha-gcc-4.9.patch =================================================================== Index: /ps/trunk/source/lib/allocators/headerless.cpp =================================================================== --- /ps/trunk/source/lib/allocators/headerless.cpp (revision 15333) +++ /ps/trunk/source/lib/allocators/headerless.cpp (revision 15334) @@ -55,10 +55,12 @@ } - FreedBlock(uintptr_t id, size_t size) - : m_magic(s_magic), m_size(size), m_id(id) - { - } - - ~FreedBlock() + void Setup(uintptr_t id, size_t size) + { + m_magic = s_magic; + m_size = size; + m_id = id; + } + + void Reset() { // clear all fields to prevent accidental reuse @@ -411,6 +413,7 @@ FreedBlock* WriteTags(u8* p, size_t size) { - FreedBlock* freedBlock = new(p) FreedBlock(s_headerId, size); - (void)new(Footer(freedBlock)) FreedBlock(s_footerId, size); + FreedBlock* freedBlock = (FreedBlock*)p; + freedBlock->Setup(s_headerId, size); + Footer(freedBlock)->Setup(s_footerId, size); m_freeBlocks++; @@ -431,6 +434,6 @@ FreedBlock* footer = Footer(freedBlock); - freedBlock->~FreedBlock(); - footer->~FreedBlock(); + freedBlock->Reset(); + footer->Reset(); }