Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2007-04-17 23:04:55 +0400
committerCampbell Barton <ideasman42@gmail.com>2007-04-17 23:04:55 +0400
commit7767451b2f051ad2283a0ab7a058e009a0111af7 (patch)
tree310c711aaa70e2198183329212438018b6355db5 /source/blender/src/view.c
parent9c8bc4badc9163af4b67b9a1048d29a165dc92d3 (diff)
maving too many objects for the select buffer would crash blender.
added checks for an error value returned from view3d_opengl_select so as not to act on bad data. also the error message didnt display because of where it was, delayed the error so it displays right.
Diffstat (limited to 'source/blender/src/view.c')
-rw-r--r--source/blender/src/view.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/src/view.c b/source/blender/src/view.c
index 56166037e7f..3e052dde07c 100644
--- a/source/blender/src/view.c
+++ b/source/blender/src/view.c
@@ -1026,6 +1026,10 @@ void setcameratoview3d(void)
}
/* IGLuint-> GLuint*/
+/* Warning: be sure to account for a negative return value
+ * This is an error, "Too many objects in select buffer"
+ * and no action should be taken (can crash blender) if this happens
+ */
short view3d_opengl_select(unsigned int *buffer, unsigned int bufsize, short x1, short y1, short x2, short y2)
{
rctf rect;
@@ -1113,7 +1117,6 @@ short view3d_opengl_select(unsigned int *buffer, unsigned int bufsize, short x1
glPopName(); /* see above (pushname) */
hits= glRenderMode(GL_RENDER);
- if(hits<0) error("Too many objects in select buffer");
G.f &= ~G_PICKSEL;
setwinmatrixview3d(curarea->winx, curarea->winy, NULL);
@@ -1127,7 +1130,9 @@ short view3d_opengl_select(unsigned int *buffer, unsigned int bufsize, short x1
if(G.vd->flag & V3D_CLIPPING)
view3d_clr_clipping();
-
+
+ if(hits<0) error("Too many objects in select buffer");
+
return hits;
}