coin3d: include fix for newer compilers

This manifests as a segfault in any applications that use the library.
This commit is contained in:
timor 2017-09-09 20:18:35 +02:00
parent e960eb0bf5
commit cf32537210
2 changed files with 28 additions and 0 deletions

View File

@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
sha256 = "076dyc52swk8qc7ylps53fg6iqmd52x8s7m18i80x49dd109yw20";
})
./gcc-4.8.patch # taken from FC-17 source rpm
# see https://bitbucket.org/Coin3D/coin/issues/128/crash-in-cc_memalloc_deallocate
# patch adapted from https://bitbucket.org/Coin3D/coin/pull-requests/75/added-fix-for-issue-128-provided-by-fedora/diff
./sbhashentry.patch
];
buildInputs = [ mesa ];

View File

@ -0,0 +1,25 @@
diff -u --label /tmp/Coin-3.1.3/src/misc/SbHash.h --label \#\<buffer\ SbHash.h\> /tmp/Coin-3.1.3/src/misc/SbHash.h /tmp/buffer-content-21756V0
--- a/src/misc/SbHash.h
+++ b/src/misc/SbHash.h
@@ -88,8 +88,8 @@
SbHashEntry<Type, Key> * entry = static_cast<SbHashEntry<Type, Key> *>( ptr);
cc_memalloc_deallocate(entry->memhandler, ptr);
}
- SbHashEntry(const Key & key, const Type & obj) : key(key), obj(obj) {}
-
+ SbHashEntry(const Key & key, const Type & obj, cc_memalloc *memhandler)
+ : key(key), obj(obj), memhandler(memhandler) {}
Key key;
Type obj;
SbHashEntry<Type, Key> * next;
@@ -218,7 +218,7 @@
/* Key not already in the hash table; insert a new
* entry as the first element in the bucket
*/
- entry = new (this->memhandler) SbHashEntry<Type, Key>(key, obj);
+ entry = new (this->memhandler) SbHashEntry<Type, Key>(key, obj, this->memhandler);
entry->next = this->buckets[i];
this->buckets[i] = entry;
Diff finished. Sat Sep 9 19:50:32 2017