[0ad] Add proper patch for gcc 4.9 build

pcpa pcpa at fedoraproject.org
Wed Jun 18 18:19:45 UTC 2014


commit 7b630d311c668b314a80aed632a6407492b89357
Author: pcpa <paulo.cesar.pereira.de.andrade at gmail.com>
Date:   Wed Jun 18 15:17:30 2014 -0300

    Add proper patch for gcc 4.9 build

 0ad-check.patch      |   21 ---------------------
 0ad.spec             |    5 ++++-
 changeset_15334.diff |   42 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 22 deletions(-)
---
diff --git a/0ad.spec b/0ad.spec
index 90de374..cd6cc91 100644
--- a/0ad.spec
+++ b/0ad.spec
@@ -19,7 +19,7 @@
 
 Name:		0ad
 Version:	0.0.16
-Release:	5%{?dist}
+Release:	6%{?dist}
 # BSD License:
 #	build/premake/*
 #	libraries/valgrind/*		(not built/used)
@@ -225,6 +225,9 @@ export STRIP=/bin/true
 %{_mandir}/man6/*.6*
 
 %changelog
+* Wed Jun 18 2014 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 0.0.16-6
+- Add proper patch for gcc 4.9 build
+
 * Fri Jun  6 2014 Peter Robinson <pbrobinson at fedoraproject.org> 0.0.16-5
 - Remove old Fedora release conditionals
 
diff --git a/changeset_15334.diff b/changeset_15334.diff
new file mode 100644
index 0000000..5b17120
--- /dev/null
+++ b/changeset_15334.diff
@@ -0,0 +1,42 @@
+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();
+ 	}
+ 


More information about the scm-commits mailing list