[Bf-blender-cvs] [ed688e48432] master: Cycles: Fix crash when assigning KernelGlobals

Lukas Stockner noreply at git.blender.org
Thu May 4 20:50:17 CEST 2017


Commit: ed688e484329044cb3744bf0977b84518bb921cb
Author: Lukas Stockner
Date:   Thu May 4 20:49:04 2017 +0200
Branches: master
https://developer.blender.org/rBed688e484329044cb3744bf0977b84518bb921cb

Cycles: Fix crash when assigning KernelGlobals

The memory isn't initialized during allocation, so calling the assignment operator is a bad idea.

===================================================================

M	intern/cycles/device/device_cpu.cpp

===================================================================

diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 3c481bb2b39..84cce605182 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -446,8 +446,7 @@ public:
 		kgbuffer.resize(sizeof(KernelGlobals));
 		mem_alloc("kernel_globals", kgbuffer, MEM_READ_WRITE);
 
-		KernelGlobals *kg = (KernelGlobals*)kgbuffer.device_pointer;
-		*kg = thread_kernel_globals_init();
+		KernelGlobals *kg = new ((void*) kgbuffer.device_pointer) KernelGlobals(thread_kernel_globals_init());
 
 		requested_features.max_closure = MAX_CLOSURE;
 		if(!split_kernel.load_kernels(requested_features)) {




More information about the Bf-blender-cvs mailing list