@@ -34,6 +34,7 @@ net_ori (struct IN_T In, int level, struct MTESS MTess, struct TESS *Tess,
3434 int i , j , partqty , * qty = NULL ;
3535 char * * parts = NULL ;
3636 struct OL_SET OSet , * OSets = NULL ;
37+ int * size = NULL ;
3738
3839 net_ori_mtess_params (In , level , MTess , Tess , dtess , dcell , & ori , & orisampling , & orispread , & oricrysym );
3940
@@ -44,6 +45,7 @@ net_ori (struct IN_T In, int level, struct MTESS MTess, struct TESS *Tess,
4445 net_ori_qty (pSSet , parts , partqty , & qty );
4546
4647 OSets = malloc (partqty * sizeof (struct OL_SET ));
48+ size = ut_alloc_1d_int (partqty );
4749 for (i = 0 ; i < partqty ; i ++ )
4850 OSets [i ] = ol_set_alloc (qty [i ], oricrysym );
4951
@@ -120,9 +122,14 @@ net_ori (struct IN_T In, int level, struct MTESS MTess, struct TESS *Tess,
120122 }
121123
122124 ol_set_cat (OSets , partqty , & OSet );
125+ for (i = 0 ; i < partqty ; i ++ )
126+ size [i ] = OSets [i ].size ;
127+
128+ printf ("ut_array_1d_int_sum (size, partqty) = %d\n" , ut_array_1d_int_sum (size , partqty ));
129+ printf ("ut_array_1d_int_max (size, partqty) = %d\n" , ut_array_1d_int_max (size , partqty ));
123130
124- if (partqty > 1 )
125- ol_set_shuf (& OSet , (* pSSet ).Random );
131+ if (ut_array_1d_int_sum ( size , partqty ) > ut_array_1d_int_max ( size , partqty ) )
132+ ol_set_shuf (& OSet , (* pSSet ).Random );
126133
127134 for (i = 0 ; i < partqty ; i ++ )
128135 ol_set_free (OSets + i );
@@ -142,6 +149,7 @@ net_ori (struct IN_T In, int level, struct MTESS MTess, struct TESS *Tess,
142149 ut_free_1d_char (& orispread );
143150 ut_free_1d_char (& oricrysym );
144151 ol_set_free (& OSet );
152+ ut_free_1d_int (& size );
145153
146154 return ;
147155}
0 commit comments