diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-05 23:54:59 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-05 23:54:59 +0400 |
commit | 63ad25c30ddca609d39e3ae6288cdddeed7fb918 (patch) | |
tree | 14c7f3423ab41c22a2901dd3170990f322e5d9f9 | |
parent | c40d8921b8b61c0465a2fe9bca72dc418bf39c7d (diff) |
Cycles:
Fix #29475: remove node from properties editor crash on windows. This was a bug
in the UI code, which code access removed data.
Fix OpenCL still being used in a case where Experimental was disabled.
Fix msvc debug warning in md5 code.
-rw-r--r-- | intern/cycles/blender/blender_sync.cpp | 7 | ||||
-rw-r--r-- | intern/cycles/util/util_md5.cpp | 5 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 5 |
3 files changed, 12 insertions, 5 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index f7b1ca53fd3..b89b7ebb9be 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -264,7 +264,12 @@ SessionParams BlenderSync::get_session_params(BL::Scene b_scene, bool background if(RNA_enum_get(&cscene, "device") != 0) { vector<DeviceType> types = Device::available_types(); - DeviceType dtype = (RNA_enum_get(&cscene, "gpu_type") == 0)? DEVICE_CUDA: DEVICE_OPENCL; + DeviceType dtype; + + if(!experimental || RNA_enum_get(&cscene, "gpu_type") == 0) + dtype = DEVICE_CUDA; + else + dtype = DEVICE_CUDA; if(device_type_available(types, dtype)) params.device_type = dtype; diff --git a/intern/cycles/util/util_md5.cpp b/intern/cycles/util/util_md5.cpp index b871fad3636..25a77f18d02 100644 --- a/intern/cycles/util/util_md5.cpp +++ b/intern/cycles/util/util_md5.cpp @@ -361,14 +361,15 @@ void MD5Hash::finish(uint8_t digest[16]) string MD5Hash::get_hex() { uint8_t digest[16]; - char buf[16*2]; + char buf[16*2+1]; finish(digest); for(int i=0; i<16; i++) sprintf(buf + i*2, "%02X", digest[i]); + buf[sizeof(buf)-1] = '\0'; - return string(buf, sizeof(buf)); + return string(buf); } CCL_NAMESPACE_END diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index c24d07f73b9..c6159487145 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -5241,9 +5241,10 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s data->state= state; - if(state != BUTTON_STATE_EXIT) { + if(!ELEM(state, BUTTON_STATE_EXIT, BUTTON_STATE_HIGHLIGHT)) { /* When objects for eg. are removed, running ui_check_but() - * can access the removed data - so disable update on exit */ + * can access the removed data - so disable update on exit + * or highlight */ ui_check_but(but); } |