fix [#33389] Curve points restricted to 0..1 range,
authorCampbell Barton <ideasman42@gmail.com>
Mon, 3 Dec 2012 07:10:31 +0000 (07:10 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 3 Dec 2012 07:10:31 +0000 (07:10 +0000)
also added note on python3.3's faulthandler module.

doc/python_api/rst/info_gotcha.rst
source/blender/editors/interface/interface_templates.c

index e60f1e256cd0ea271799b5c9934a6f23d4fc9193..08548ea73e54ca588c8c7665ba86c72c657d6d73 100644 (file)
@@ -537,6 +537,13 @@ Here are some general hints to avoid running into these problems.
 
 * Crashes may not happen every time, they may happen more on some configurations/operating-systems.
 
+.. note::
+
+   To find the line of your script that crashes you can use the ``faulthandler`` module.
+   See `faulthandler docs<http://docs.python.org/dev/library/faulthandler.html>`_.
+
+   While the crash may be in Blenders C/C++ code, this can help a lot to track down the area of the script that causes the crash.
+
 
 Undo/Redo
 ---------
index e01e6bdd49ec06c822bff1975dc6587048a0cf79..19d4de8bce46992c3315b07097fa116713bac725 100644 (file)
@@ -2021,10 +2021,16 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
        }
 
        if (cmp) {
+               const float range_clamp[2]   = {0.0f, 1.0f};
+               const float range_unclamp[2] = {-1000.0f, 1000.0f};  /* arbitrary limits here */
+               const float *range = (cumap->flag & CUMA_DO_CLIP) ? range_clamp : range_unclamp;
+
                uiLayoutRow(layout, TRUE);
                uiBlockSetNFunc(block, curvemap_buttons_update, MEM_dupallocN(cb), cumap);
-               bt = uiDefButF(block, NUM, 0, "X", 0, 2 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y, &cmp->x, 0.0f, 1.0f, 1, 5, "");
-               bt = uiDefButF(block, NUM, 0, "Y", 0, 1 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y, &cmp->y, 0.0f, 1.0f, 1, 5, "");
+               bt = uiDefButF(block, NUM, 0, "X", 0, 2 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y,
+                              &cmp->x, range[0], range[1], 1, 5, "");
+               bt = uiDefButF(block, NUM, 0, "Y", 0, 1 * UI_UNIT_Y, UI_UNIT_X * 10, UI_UNIT_Y,
+                              &cmp->y, range[0], range[1], 1, 5, "");
        }
 
        /* black/white levels */