Fix cycles issue with BVH cache created with 64 bits and used for 32 bits binary,

and vice versa.
This commit is contained in:
Brecht Van Lommel 2013-02-13 11:02:51 +00:00
parent 35629a623b
commit 4061f96d94
2 changed files with 6 additions and 4 deletions

@ -30,6 +30,7 @@
#include "util_foreach.h" #include "util_foreach.h"
#include "util_map.h" #include "util_map.h"
#include "util_progress.h" #include "util_progress.h"
#include "util_system.h"
#include "util_types.h" #include "util_types.h"
CCL_NAMESPACE_BEGIN CCL_NAMESPACE_BEGIN
@ -71,6 +72,7 @@ BVH *BVH::create(const BVHParams& params, const vector<Object*>& objects)
bool BVH::cache_read(CacheData& key) bool BVH::cache_read(CacheData& key)
{ {
key.add(system_cpu_bits());
key.add(&params, sizeof(params)); key.add(&params, sizeof(params));
foreach(Object *ob, objects) { foreach(Object *ob, objects) {

@ -72,7 +72,7 @@ public:
buffers.push_back(buffer); buffers.push_back(buffer);
} }
void add(void *data, size_t size) void add(const void *data, size_t size)
{ {
if(size) { if(size) {
CacheBuffer buffer(data, size); CacheBuffer buffer(data, size);
@ -80,19 +80,19 @@ public:
} }
} }
void add(int& data) void add(const int& data)
{ {
CacheBuffer buffer(&data, sizeof(int)); CacheBuffer buffer(&data, sizeof(int));
buffers.push_back(buffer); buffers.push_back(buffer);
} }
void add(float& data) void add(const float& data)
{ {
CacheBuffer buffer(&data, sizeof(float)); CacheBuffer buffer(&data, sizeof(float));
buffers.push_back(buffer); buffers.push_back(buffer);
} }
void add(size_t& data) void add(const size_t& data)
{ {
CacheBuffer buffer(&data, sizeof(size_t)); CacheBuffer buffer(&data, sizeof(size_t));
buffers.push_back(buffer); buffers.push_back(buffer);