[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56821] trunk/blender/source/blender/ blenkernel/intern/idprop.c: Fix slow resizing of ID property arrays with more than 1619 items, it incorrectly
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed May 15 16:36:59 CEST 2013
Revision: 56821
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56821
Author: blendix
Date: 2013-05-15 14:36:58 +0000 (Wed, 15 May 2013)
Log Message:
-----------
Fix slow resizing of ID property arrays with more than 1619 items, it incorrectly
reverted to sizing with by 1 each time. This was slowing down painting long strokes
with small brush radius.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/idprop.c
Modified: trunk/blender/source/blender/blenkernel/intern/idprop.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/idprop.c 2013-05-15 12:33:28 UTC (rev 56820)
+++ trunk/blender/source/blender/blenkernel/intern/idprop.c 2013-05-15 14:36:58 UTC (rev 56821)
@@ -138,14 +138,20 @@
/*first check if the array buffer size has room*/
/*if newlen is 200 chars less then totallen, reallocate anyway*/
- if (newlen <= prop->totallen && prop->totallen - newlen < 200) {
- int i;
+ if (newlen <= prop->totallen) {
+ if (newlen < prop->len && prop->totallen - newlen < 200) {
+ int i;
- for (i = newlen; i < prop->len; i++)
- IDP_FreeProperty(GETPROP(prop, i));
+ for (i = newlen; i < prop->len; i++)
+ IDP_FreeProperty(GETPROP(prop, i));
- prop->len = newlen;
- return;
+ prop->len = newlen;
+ return;
+ }
+ else if (newlen >= prop->len) {
+ prop->len = newlen;
+ return;
+ }
}
/* - Note: This code comes from python, here's the corresponding comment. - */
More information about the Bf-blender-cvs
mailing list