/ani/mrses

To get this branch, use:
bzr branch http://suren.me/webbzr/ani/mrses

« back to all changes in this revision

Viewing changes to cell/mrses_spu.c

  • Committer: Suren A. Chilingaryan
  • Date: 2010-04-30 15:00:46 UTC
  • Revision ID: csa@dside.dyndns.org-20100430150046-1x5cwqqelzx420vf
Fix SPE crashes on big (above 4096) and non-power-of-2 number of properties

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
    int iterate_size = mrses->iterate_size;
28
28
    int properties = mrses->properties;
29
29
    int width = mrses->width;
 
30
    
 
31
    int palloc = mrses->palloc;
30
32
 
31
33
    int block = block_group * iterate_size;
32
34
    int block_end = block + iterate_size;
70
72
 
71
73
 
72
74
    for (; block < block_end; ++block) { 
73
 
        index = mrses->index + block * properties;
 
75
        index = mrses->index + block * palloc;
74
76
        if (ires) memcpy(ires + block * width, index, width * sizeof(MRSESIntType));
75
77
        for (i = 0; i < width; i++) {
76
78
            hist[index[i]]++;
87
89
        mrses->index = malloc(mrses->width * iterate_size * (block_group + 1) * sizeof(MRSESIntType));
88
90
 
89
91
        for (i = 0; i < iterate_size; i++) {
90
 
            memcpy(mrses->index + (iterate_size * block_group + i) * mrses->width, index + (iterate_size * block_group + i) * mrses->properties, mrses->width * sizeof(MRSESIntType));
 
92
            memcpy(mrses->index + (iterate_size * block_group + i) * mrses->width, index + (iterate_size * block_group + i) * palloc, mrses->width * sizeof(MRSESIntType));
91
93
        }
92
94
 
93
95
        for (i = 0; i < iterate_size * mrses->width; i++) {