[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17831] branches/blender2.5/blender/source /blender: 2.5
Ton Roosendaal
ton at blender.org
Sun Dec 14 11:08:08 CET 2008
Revision: 17831
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17831
Author: ton
Date: 2008-12-14 11:08:00 +0100 (Sun, 14 Dec 2008)
Log Message:
-----------
2.5
Added freeing functions in outliner space, this makes blender quit
without memory free errors in my test .b.blends.
Note: I'll move current rna viewer to new SpaceData editor, then I
can bring back original outliner stuff. Proposed menu name is
"Data Viewer". Probably better not not expose name 'rna' in UI?
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
branches/blender2.5/blender/source/blender/editors/space_outliner/outliner_intern.h
branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c
Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2008-12-14 09:11:31 UTC (rev 17830)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2008-12-14 10:08:00 UTC (rev 17831)
@@ -4510,8 +4510,17 @@
allocname= dataname(GS(id->name));
/* read all data */
+
while(bhead && bhead->code==DATA) {
- void *data= read_struct(fd, bhead, allocname);
+ void *data;
+ /* XXX BAD DEBUGGING OPTION TO GIVE NAMES */
+ short *sp= fd->filesdna->structs[bhead->SDNAnr];
+ char *allocname = fd->filesdna->types[ sp[0] ];
+ char *tmp= malloc(100);
+
+ strcpy(tmp, allocname);
+
+ data= read_struct(fd, bhead, tmp);
if (data) {
oldnewmap_insert(fd->datamap, bhead->old, data, 0);
Modified: branches/blender2.5/blender/source/blender/editors/space_outliner/outliner_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_outliner/outliner_intern.h 2008-12-14 09:11:31 UTC (rev 17830)
+++ branches/blender2.5/blender/source/blender/editors/space_outliner/outliner_intern.h 2008-12-14 10:08:00 UTC (rev 17831)
@@ -33,6 +33,67 @@
struct wmWindowManager;
+struct TreeStoreElem;
+
+typedef struct TreeElement {
+ struct TreeElement *next, *prev, *parent;
+ ListBase subtree;
+ float xs, ys; // do selection
+ int store_index; // offset in tree store
+ short flag, index; // flag for non-saved stuff, index for data arrays
+ short idcode; // from TreeStore id
+ short xend; // width of item display, for select
+ char *name;
+ void *directdata; // Armature Bones, Base, Sequence, Strip...
+} TreeElement;
+
+/* TreeElement->flag */
+#define TE_ACTIVE 1
+#define TE_ICONROW 2
+
+/* TreeStoreElem types */
+#define TSE_NLA 1
+#define TSE_NLA_ACTION 2
+#define TSE_DEFGROUP_BASE 3
+#define TSE_DEFGROUP 4
+#define TSE_BONE 5
+#define TSE_EBONE 6
+#define TSE_CONSTRAINT_BASE 7
+#define TSE_CONSTRAINT 8
+#define TSE_MODIFIER_BASE 9
+#define TSE_MODIFIER 10
+#define TSE_LINKED_OB 11
+#define TSE_SCRIPT_BASE 12
+#define TSE_POSE_BASE 13
+#define TSE_POSE_CHANNEL 14
+/*#ifdef WITH_VERSE*/
+#define TSE_VERSE_SESSION 15
+#define TSE_VERSE_OBJ_NODE 16
+#define TSE_VERSE_GEOM_NODE 17
+/*#endif*/
+#define TSE_PROXY 18
+#define TSE_R_LAYER_BASE 19
+#define TSE_R_LAYER 20
+#define TSE_R_PASS 21
+#define TSE_LINKED_MAT 22
+/* NOTE, is used for light group */
+#define TSE_LINKED_LAMP 23
+#define TSE_POSEGRP_BASE 24
+#define TSE_POSEGRP 25
+#define TSE_SEQUENCE 26
+#define TSE_SEQ_STRIP 27
+#define TSE_SEQUENCE_DUP 28
+
+/* outliner search flags */
+#define OL_FIND 0
+#define OL_FIND_CASE 1
+#define OL_FIND_COMPLETE 2
+#define OL_FIND_COMPLETE_CASE 3
+
+/* button events */
+#define OL_NAMEBUTTON 1
+
+
/* outliner_ops.c */
void outliner_operatortypes(void);
void outliner_keymap(struct wmWindowManager *wm);
Modified: branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c 2008-12-14 09:11:31 UTC (rev 17830)
+++ branches/blender2.5/blender/source/blender/editors/space_outliner/space_outliner.c 2008-12-14 10:08:00 UTC (rev 17831)
@@ -492,15 +492,46 @@
return (SpaceLink*)soutliner;
}
+static void free_oops(Oops *oops) /* also oops itself */
+{
+ BLI_freelistN(&oops->link);
+ MEM_freeN(oops);
+}
+
+static void outliner_free_tree(ListBase *lb)
+{
+
+ while(lb->first) {
+ TreeElement *te= lb->first;
+
+ outliner_free_tree(&te->subtree);
+ BLI_remlink(lb, te);
+ MEM_freeN(te);
+ }
+}
+
/* not spacelink itself */
static void outliner_free(SpaceLink *sl)
{
SpaceOops *soutliner= (SpaceOops*)sl;
+ Oops *oops;
if(soutliner->rnapath) {
MEM_freeN(soutliner->rnapath);
soutliner->rnapath= NULL;
}
+
+ while( (oops= soutliner->oops.first) ) {
+ BLI_remlink(&soutliner->oops, oops);
+ free_oops(oops);
+ }
+
+ outliner_free_tree(&soutliner->tree);
+ if(soutliner->treestore) {
+ if(soutliner->treestore->data) MEM_freeN(soutliner->treestore->data);
+ MEM_freeN(soutliner->treestore);
+ }
+
}
/* spacetype; init callback */
More information about the Bf-blender-cvs
mailing list