[Bf-blender-cvs] [d208684] temp_manipulators_core: Fix 3 bugs causing startup to fail in wiggly-widgets branch
Julian Eisel
noreply at git.blender.org
Thu Sep 22 02:14:17 CEST 2016
Commit: d2086843983a45cce4977b085e5f35ab9f0285c0
Author: Julian Eisel
Date: Thu Sep 22 02:13:24 2016 +0200
Branches: temp_manipulators_core
https://developer.blender.org/rBd2086843983a45cce4977b085e5f35ab9f0285c0
Fix 3 bugs causing startup to fail in wiggly-widgets branch
===================================================================
M source/blender/editors/space_api/spacetypes.c
M source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
===================================================================
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index 2b4ca8d..597c724 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -125,12 +125,13 @@ void ED_spacetypes_init(void)
/* register types for operators and manipulators */
spacetypes = BKE_spacetypes_list();
for (type = spacetypes->first; type; type = type->next) {
- if (type->operatortypes) {
- type->operatortypes();
- }
+ /* init manipulator types first, operator types need them */
if (type->manipulators) {
type->manipulators();
}
+ if (type->operatortypes) {
+ type->operatortypes();
+ }
}
/* register internal render callbacks */
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
index 69f86aa..697f21d 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulatormap.c
@@ -321,7 +321,7 @@ void WM_manipulatormap_draw(
bool highlight_poll;
/* draw_manipulators excludes hidden manipulators */
for (LinkData *link = draw_manipulators.first, *link_next; link; link = link_next) {
- link_next = link_next;
+ link_next = link->next;
manipulator = link->data;
highlight_poll = (manipulator->flag & WM_MANIPULATOR_DRAW_HOVER) == 0 ||
(manipulator->flag & WM_MANIPULATOR_HIGHLIGHT);
@@ -335,20 +335,19 @@ void WM_manipulatormap_draw(
/* free now, avoids further iterations */
if (free_drawmanipulators) {
- MEM_freeN(link);
+ BLI_freelinkN(&draw_manipulators, link);
}
}
}
+ if (free_drawmanipulators) {
+ BLI_listbase_clear(&draw_manipulators);
+ }
if (draw_multisample)
glDisable(GL_MULTISAMPLE);
if (use_lighting)
glPopAttrib();
-
- if (free_drawmanipulators) {
- BLI_listbase_clear(&draw_manipulators);
- }
}
static void manipulator_find_active_3D_loop(const bContext *C, ListBase *visible_manipulators)
More information about the Bf-blender-cvs
mailing list