diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-09-04 12:53:44 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2012-09-04 12:53:44 +0400 |
commit | 71871463a4bb3c58bfa3c3b36019c1b3b02dcf1d (patch) | |
tree | 82dbcd69121f031dcc7b758a6cadd4343dfd58fa /intern | |
parent | 3804b2d2ba2d907ee4e84b191d7f551a414b72d5 (diff) |
Fix for bad memory leak in OSL: the context created for each OSL sample did not get released properly.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/osl/osl_shader.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp index 345614c2868..a7c21e7b595 100644 --- a/intern/cycles/kernel/osl/osl_shader.cpp +++ b/intern/cycles/kernel/osl/osl_shader.cpp @@ -382,10 +382,8 @@ void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd) void OSLShader::release(KernelGlobals *kg, const ShaderData *sd) { OSL::ShadingSystem *ss = kg->osl.ss; - OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data); - OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info); - - ss->release_context(ctx); + + ss->release_context((OSL::ShadingContext *)sd->osl_ctx); } /* BSDF Closure */ |