diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-07-30 15:19:41 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-07-30 15:19:41 +0400 |
commit | 385c8af44956b54a8d789bb3f55678f79b21a4de (patch) | |
tree | 3277595f8a5d4f73feec62fba89f8b39caf730b9 /source/blender/makesrna/intern/rna_space.c | |
parent | 3b9b4f76054e55465c3c0ddbaed3f09618860b58 (diff) |
bugfix [#23104] Crash when console: <SpaceView3D object>.local_view. autocomplete
Diffstat (limited to 'source/blender/makesrna/intern/rna_space.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 227466f808d..8bb736f7976 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -310,22 +310,32 @@ static PointerRNA rna_SpaceView3D_region_3d_get(PointerRNA *ptr) { View3D *v3d= (View3D*)(ptr->data); ScrArea *sa= rna_area_from_space(ptr); - ListBase *regionbase= (sa->spacedata.first == v3d)? &sa->regionbase: &v3d->regionbase; - ARegion *ar= regionbase->last; /* always last in list, weak .. */ + void *regiondata= NULL; + if(sa) { + ListBase *regionbase= (sa->spacedata.first == v3d)? &sa->regionbase: &v3d->regionbase; + ARegion *ar= regionbase->last; /* always last in list, weak .. */ + regiondata= ar->regiondata; + } - return rna_pointer_inherit_refine(ptr, &RNA_RegionView3D, ar->regiondata); + return rna_pointer_inherit_refine(ptr, &RNA_RegionView3D, regiondata); } static PointerRNA rna_SpaceView3D_region_quadview_get(PointerRNA *ptr) { View3D *v3d= (View3D*)(ptr->data); ScrArea *sa= rna_area_from_space(ptr); - ListBase *regionbase= (sa->spacedata.first == v3d)? &sa->regionbase: &v3d->regionbase; - ARegion *ar= regionbase->last; /* always before last in list, weak .. */ - - ar= (ar->alignment == RGN_ALIGN_QSPLIT)? ar->prev: NULL; + void *regiondata= NULL; + if(sa) { + ListBase *regionbase= (sa->spacedata.first == v3d)? &sa->regionbase: &v3d->regionbase; + ARegion *ar= regionbase->last; /* always before last in list, weak .. */ + + ar= (ar->alignment == RGN_ALIGN_QSPLIT)? ar->prev: NULL; + if(ar) { + regiondata= ar->regiondata; + } + } - return rna_pointer_inherit_refine(ptr, &RNA_RegionView3D, (ar)? ar->regiondata: NULL); + return rna_pointer_inherit_refine(ptr, &RNA_RegionView3D, regiondata); } static void rna_RegionView3D_quadview_update(Main *main, Scene *scene, PointerRNA *ptr) |