diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-05-04 08:07:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-05-04 09:01:20 +0300 |
commit | 77e6a001a96b7eb3b2b1c2216a48c85c1b6906e0 (patch) | |
tree | ff2d44f3d8c661445e5d358f11e9043beadb23f0 /source/blender/blenkernel/intern/screen.c | |
parent | 8d5e57748a777a76dbbe85d432d7d8364775713a (diff) |
Fix T44376: Buttons context, invalid data access
Removing a scene from the buttons window would crash from a Python operator.
Diffstat (limited to 'source/blender/blenkernel/intern/screen.c')
-rw-r--r-- | source/blender/blenkernel/intern/screen.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index 36fd598cc70..840e1f99f84 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -272,6 +272,19 @@ void BKE_spacedata_draw_locks(int set) } } +static void (*spacedata_id_unref_cb)(struct SpaceLink *sl, const struct ID *id) = NULL; + +void BKE_spacedata_callback_id_unref_set(void (*func)(struct SpaceLink *sl, const struct ID *)) +{ + spacedata_id_unref_cb = func; +} + +void BKE_spacedata_id_unref(struct SpaceLink *sl, const struct ID *id) +{ + if (spacedata_id_unref_cb) { + spacedata_id_unref_cb(sl, id); + } +} /* not region itself */ void BKE_area_region_free(SpaceType *st, ARegion *ar) |