[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13250] branches/blender2.5/blender/source /blender/editors/screen/screen_edit.c: * check for NULL.

Nathan Letwory jesterking at letwory.net
Tue Jan 15 20:28:59 CET 2008


Revision: 13250
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13250
Author:   jesterking
Date:     2008-01-15 20:28:57 +0100 (Tue, 15 Jan 2008)

Log Message:
-----------
* check for NULL. Could crash if passed parameters were NULL.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c	2008-01-15 19:00:09 UTC (rev 13249)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c	2008-01-15 19:28:57 UTC (rev 13250)
@@ -44,6 +44,7 @@
 #include "ED_area.h"
 #include "ED_screen.h"
 
+
 #include "wm_subwindow.h"
 
 #include "screen_intern.h"	/* own module include */
@@ -491,14 +492,19 @@
 /* used with split operator */
 static int area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb)
 {
-	ScrVert *sav1= sa->v1;
-	ScrVert *sav2= sa->v2;
-	ScrVert *sav3= sa->v3;
-	ScrVert *sav4= sa->v4;
-	ScrVert *sbv1= sb->v1;
-	ScrVert *sbv2= sb->v2;
-	ScrVert *sbv3= sb->v3;
-	ScrVert *sbv4= sb->v4;
+	ScrVert *sav1, *sav2, *sav3, *sav4;
+	ScrVert *sbv1, *sbv2, *sbv3, *sbv4;
+
+	if(sa==NULL || sb==NULL) return -1;
+
+	sav1= sa->v1;
+	sav2= sa->v2;
+	sav3= sa->v3;
+	sav4= sa->v4;
+	sbv1= sb->v1;
+	sbv2= sb->v2;
+	sbv3= sb->v3;
+	sbv4= sb->v4;
 	
 	if(sav1==sbv4 && sav2==sbv3) { /* sa to right of sb = W */
 		return 0;
@@ -533,7 +539,6 @@
 	if(dir=='h') {
 		y= sa->v1->vec.y+ fac*(sa->v2->vec.y- sa->v1->vec.y);
 		
-		//XXX G.curscreen!
 		if(sa->v2->vec.y==win->sizey-1 && sa->v2->vec.y- y < HEADERY) 
 			y= sa->v2->vec.y- HEADERY;
 
@@ -1153,6 +1158,8 @@
 	op->delta= 0;
 	op->veci.x= event->x;
 	op->veci.y= event->y;
+
+	op->customdata= NULL;
 	
 	if(0==split_area_init(C, op)) 
 		return 1;
@@ -1221,13 +1228,13 @@
 				printf("In other area now\n");
 				split_joincurrent(C, sd);
 				/* now find aedge with same orientation as sd->dir (inverted) */
-				if(sd->dir=='v') {
-					sd->aedge= screen_findedge(C->screen, sa->v1, sa->v4);
-					if(sd->aedge==NULL) sd->aedge= screen_findedge(C->screen, sa->v2, sa->v3);
+				if(sd->dir=='v') {
+					sd->aedge= screen_findedge(C->screen, sa->v1, sa->v4);
+					if(sd->aedge==NULL) sd->aedge= screen_findedge(C->screen, sa->v2, sa->v3);
 				}
-				else {
-					sd->aedge= screen_findedge(C->screen, sa->v1, sa->v2);
-					if(sd->aedge==NULL) sd->aedge= screen_findedge(C->screen, sa->v3, sa->v4);
+				else {
+					sd->aedge= screen_findedge(C->screen, sa->v1, sa->v2);
+					if(sd->aedge==NULL) sd->aedge= screen_findedge(C->screen, sa->v3, sa->v4);
 				}
 				sd->sarea= sa;
 				op->delta= 0;





More information about the Bf-blender-cvs mailing list