From dc2daf7a6786110a77cebc5ad8ea7a118d156d61 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 5 Jun 2014 02:29:48 +0600 Subject: Fix T40482: Cycles matlib file crashes it's possible that runtime optimizer would call get_attribute with NULL renderstate. As per documentation, it's valid to return false in that cases and in worst case we'll just miss some possible optimization. Supporting such cases would require some bigger changes to Cycles since attributes are only set to up for the kernel after shader compilation. Thanks Brecht for review! --- intern/cycles/kernel/osl/osl_services.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'intern') diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp index dba2b66faff..8fe48b9b38c 100644 --- a/intern/cycles/kernel/osl/osl_services.cpp +++ b/intern/cycles/kernel/osl/osl_services.cpp @@ -754,6 +754,9 @@ bool OSLRenderServices::get_background_attribute(KernelGlobals *kg, ShaderData * bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustring object_name, TypeDesc type, ustring name, void *val) { + if (renderstate == NULL) + return false; + ShaderData *sd = (ShaderData *)renderstate; KernelGlobals *kg = sd->osl_globals; bool is_curve; -- cgit v1.2.3