Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-12-04 11:48:09 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-12-04 11:48:09 +0400
commita9d889cba412eaa4e02806e50b631ae621521e23 (patch)
tree4ce11445d1b30caa567f6c8fb6dd70fdffb2fc85 /intern/cycles/blender/blender_util.h
parentc0078a987978348f200322764e06afbcc378b81f (diff)
Fix #33405: preview render getting stuck in a particular .blend file, ObjectKey
operator< had wrong brackets, changed it now to be more clear. Fix #33404: crash GPU rendering with OSL option still enabled. There was a check to disable OSL in this case, but it shouldn't have modified scene->params because this is used for comparison in scene->modified().
Diffstat (limited to 'intern/cycles/blender/blender_util.h')
-rw-r--r--intern/cycles/blender/blender_util.h24
1 files changed, 19 insertions, 5 deletions
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index 4feb8b556d5..0a9f2dd06aa 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -367,12 +367,22 @@ struct ObjectKey {
bool operator<(const ObjectKey& k) const
{
- return (parent < k.parent) ||
- (parent == k.parent && (memcmp(id, k.id, sizeof(id)) < 0)) ||
- (memcmp(id, k.id, sizeof(id)) == 0 && ob < k.ob);
+ if(ob < k.ob) {
+ return true;
+ }
+ else if(ob == k.ob) {
+ if(parent < k.parent)
+ return true;
+ else if(parent == k.parent)
+ return memcmp(id, k.id, sizeof(id)) < 0;
+ }
+
+ return false;
}
};
+/* Particle System Key */
+
struct ParticleSystemKey {
void *ob;
int id[OBJECT_PERSISTENT_ID_SIZE];
@@ -389,8 +399,12 @@ struct ParticleSystemKey {
bool operator<(const ParticleSystemKey& k) const
{
/* first id is particle index, we don't compare that */
- return (ob < k.ob) ||
- (ob == k.ob && (memcmp(id+1, k.id+1, sizeof(int)*(OBJECT_PERSISTENT_ID_SIZE-1)) < 0));
+ if(ob < k.ob)
+ return true;
+ else if(ob == k.ob)
+ return memcmp(id+1, k.id+1, sizeof(int)*(OBJECT_PERSISTENT_ID_SIZE-1)) < 0;
+
+ return false;
}
};