svn merge ^/trunk/blender -r42742:42757
[blender-staging.git] / source / blender / blenkernel / intern / DerivedMesh.c
index e47c197cfa0d9d452c63c2fd35b2a080dfd3f311..20688151c1174223ab22e744b77219690bba5f3e 100644 (file)
@@ -958,11 +958,15 @@ void vDM_ColorBand_store(ColorBand *coba)
        stored_cb= coba;
 }
 
-/* return an array of vertex weight colors */
+/* return an array of vertex weight colors, caller must free.
+ *
+ * note that we could save some memory and allocate RGB only but then we'd need to
+ * re-arrange the colors when copying to the face since MCol has odd ordering,
+ * so leave this as is - campbell */
 static unsigned char *calc_weightpaint_vert_array(Object *ob, int const draw_flag, ColorBand *coba)
 {
        Mesh *me = ob->data;
-       unsigned char *wtcol_v = MEM_callocN (sizeof(unsigned char) * me->totvert * 4, "weightmap_v");
+       unsigned char *wtcol_v = MEM_mallocN (sizeof(unsigned char) * me->totvert * 4, "weightmap_v");
 
        if (me->dvert) {
                unsigned char *wc = wtcol_v;
@@ -1011,8 +1015,8 @@ static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
                /*origindex being NULL means we're operating on original mesh data*/
                unsigned int fidx= mf->v4 ? 3:2;
                do {
-               copy_v4_v4_char((char *)&wtcol_f[(4 * i + fidx) * 4],
-                                               (char *)&wtcol_v[4 * (*(&mf->v1 + fidx))]);
+                       copy_v4_v4_char((char *)&wtcol_f[(4 * i + fidx) * 4],
+                                       (char *)&wtcol_v[4 * (*(&mf->v1 + fidx))]);
                } while (fidx--);
        }