fix for crash with demo mode addon, modal operator loading a blend file would free all window data which was then accessed, causing a crash.
This commit is contained in:
@@ -6238,7 +6238,11 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param
|
||||
ParameterIterator iter;
|
||||
PointerRNA funcptr;
|
||||
int err= 0, i, flag, ret_len=0;
|
||||
int is_static= RNA_function_flag(func) & FUNC_NO_SELF;
|
||||
const char is_static= (RNA_function_flag(func) & FUNC_NO_SELF) != 0;
|
||||
|
||||
/* annoying!, need to check if the screen gets set to NULL which is a
|
||||
* hint that the file was actually re-loaded. */
|
||||
const char is_valid_screen= (CTX_wm_screen(C) != NULL);
|
||||
|
||||
PropertyRNA *pret_single= NULL;
|
||||
void *retdata_single= NULL;
|
||||
@@ -6498,7 +6502,11 @@ static int bpy_class_call(bContext *C, PointerRNA *ptr, FunctionRNA *func, Param
|
||||
if(err != 0) {
|
||||
ReportList *reports;
|
||||
/* alert the user, else they wont know unless they see the console. */
|
||||
if (!is_static && ptr->data && RNA_struct_is_a(ptr->type, &RNA_Operator)) {
|
||||
if ( (!is_static) &&
|
||||
(ptr->data) &&
|
||||
(RNA_struct_is_a(ptr->type, &RNA_Operator)) &&
|
||||
is_valid_screen == (CTX_wm_screen(C) != NULL))
|
||||
{
|
||||
wmOperator *op= ptr->data;
|
||||
reports= op->reports;
|
||||
}
|
||||
|
Reference in New Issue
Block a user