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:
authorLukas Toenne <lukas.toenne@googlemail.com>2012-09-05 12:12:22 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2012-09-05 12:12:22 +0400
commitf3a91f461ca94557a8125915544676cc765a5709 (patch)
tree523d86edcfa09add40858b6137d819963f583d65 /intern/cycles/kernel/osl/osl_shader.h
parent99fcec33347c94228ca0c225dcbdd7cb6117e99b (diff)
Fix for OSL memory leak. The context creation for OSL is now done in the shader_setup_* functions, since it should specific to the sample being worked on. The the context release then happens in the kernel_shader functions after shader evaluation is done. Care has to be taken to ensure the shader_release function is also called in cases where the path integration is cancelled early, this was the main cause for unreleased contexts and subsequent new allocations.
Diffstat (limited to 'intern/cycles/kernel/osl/osl_shader.h')
-rw-r--r--intern/cycles/kernel/osl/osl_shader.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h
index 815557ed203..e55f98d4d02 100644
--- a/intern/cycles/kernel/osl/osl_shader.h
+++ b/intern/cycles/kernel/osl/osl_shader.h
@@ -79,7 +79,8 @@ public:
const float3 omega_in, const float3 omega_out);
/* release */
- static void release(KernelGlobals *kg, const ShaderData *sd);
+ static void init(KernelGlobals *kg, ShaderData *sd);
+ static void release(KernelGlobals *kg, ShaderData *sd);
};
CCL_NAMESPACE_END