[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13949] trunk/blender/source/blender: * Bugfix #8426: certain hooks options segfaulted
Joshua Leung
aligorith at gmail.com
Mon Mar 3 04:21:27 CET 2008
Revision: 13949
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13949
Author: aligorith
Date: 2008-03-03 04:21:25 +0100 (Mon, 03 Mar 2008)
Log Message:
-----------
* Bugfix #8426: certain hooks options segfaulted
This was caused by my previous commit for add_hook.
* Also, removed a compiler warning in the Python code
Modified Paths:
--------------
trunk/blender/source/blender/python/api2_2x/Modifier.c
trunk/blender/source/blender/python/api2_2x/Scene.c
trunk/blender/source/blender/src/editobject.c
Modified: trunk/blender/source/blender/python/api2_2x/Modifier.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Modifier.c 2008-03-03 01:44:35 UTC (rev 13948)
+++ trunk/blender/source/blender/python/api2_2x/Modifier.c 2008-03-03 03:21:25 UTC (rev 13949)
@@ -1,5 +1,5 @@
/*
- * $Id: Modifier.c 12840 2007-12-11 01:58:22Z khughes $
+ * $Id$
*
* ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
*
@@ -44,6 +44,7 @@
#include "BLI_blenlib.h"
#include "BLI_arithb.h"
#include "MEM_guardedalloc.h"
+#include "BDR_editobject.h"
#include "butspace.h"
#include "blendef.h"
#include "mydevice.h"
@@ -1352,6 +1353,18 @@
Py_RETURN_NONE;
}
+
+/* quick hack for ZanQdo: add new hook modifier for selected verts */
+static PyObject *ModSeq_ZanQdoHack(BPy_ModSeq *self)
+{
+ /* this should add the hook (assumes that modifier stack is on same ob!) */
+ if ((self) && (G.obedit) && (self->object==G.obedit)) {
+ add_hook(1);
+ }
+
+ Py_RETURN_NONE;
+}
+
/*****************************************************************************/
/* Python BPy_ModSeq methods table: */
/*****************************************************************************/
@@ -1365,6 +1378,8 @@
"(modifier) - Move a modifier up in stack"},
{"moveDown", ( PyCFunction ) ModSeq_moveDown, METH_O,
"(modifier) - Move a modifier down in stack"},
+ {"ZanQdoHack", (PyCFunction)ModSeq_ZanQdoHack, METH_NOARGS,
+ "while in editmode, adds a hook for the selected verts (adds new modifier, and deselects object)"},
{NULL, NULL, 0, NULL}
};
Modified: trunk/blender/source/blender/python/api2_2x/Scene.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Scene.c 2008-03-03 01:44:35 UTC (rev 13948)
+++ trunk/blender/source/blender/python/api2_2x/Scene.c 2008-03-03 03:21:25 UTC (rev 13949)
@@ -42,6 +42,7 @@
#include "DNA_screen_types.h"
#include "DNA_userdef_types.h" /* U.userdefs */
#include "DNA_object_types.h" /* SceneObSeq_new */
+#include "BKE_armature.h"
#include "BKE_depsgraph.h"
#include "BKE_library.h"
#include "BKE_object.h"
Modified: trunk/blender/source/blender/src/editobject.c
===================================================================
--- trunk/blender/source/blender/src/editobject.c 2008-03-03 01:44:35 UTC (rev 13948)
+++ trunk/blender/source/blender/src/editobject.c 2008-03-03 03:21:25 UTC (rev 13949)
@@ -634,18 +634,34 @@
void add_hook_menu(void)
{
- ModifierData *md = NULL;
- HookModifierData *hmd = NULL;
- Object *ob=NULL;
int mode;
+ if(G.obedit==NULL) return;
+
if(modifiers_findByType(G.obedit, eModifierType_Hook))
mode= pupmenu("Hooks %t|Add, To New Empty %x1|Add, To Selected Object %x2|Remove... %x3|Reassign... %x4|Select... %x5|Clear Offset...%x6");
else
mode= pupmenu("Hooks %t|Add, New Empty %x1|Add, To Selected Object %x2");
if(mode<1) return;
+
+ /* do operations */
+ add_hook(mode);
+ allqueue(REDRAWVIEW3D, 0);
+ allqueue(REDRAWBUTSOBJECT, 0);
+
+ BIF_undo_push("Add hook");
+}
+
+void add_hook(int mode)
+{
+ ModifierData *md = NULL;
+ HookModifierData *hmd = NULL;
+ Object *ob=NULL;
+
+ if(G.obedit==NULL) return;
+
/* preconditions */
if(mode==2) { /* selected object */
Base *base= FIRSTBASE;
@@ -708,23 +724,6 @@
ob= hmd->object;
}
- /* do operations */
- add_hook(mode);
-
- allqueue(REDRAWVIEW3D, 0);
- allqueue(REDRAWBUTSOBJECT, 0);
-
- BIF_undo_push("Add hook");
-}
-
-void add_hook(int mode)
-{
- ModifierData *md = NULL;
- HookModifierData *hmd = NULL;
- Object *ob=NULL;
-
- if(G.obedit==NULL) return;
-
/* do it, new hooks or reassign */
if(mode==1 || mode==2 || mode==4) {
float cent[3];
More information about the Bf-blender-cvs
mailing list