diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2017-05-04 21:49:04 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2017-05-04 21:49:04 +0300 |
commit | ed688e484329044cb3744bf0977b84518bb921cb (patch) | |
tree | fec5c4603874a06bfb8f6907f5bb90c57e174a80 /intern | |
parent | a523dfd2fd8c19ca0fbf9891a3be0988945d585f (diff) |
Cycles: Fix crash when assigning KernelGlobals
The memory isn't initialized during allocation, so calling the assignment operator is a bad idea.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/device/device_cpu.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
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)) { |