Changeset 37154 for lang/cplusplus

Show
Ignore:
Timestamp:
04/04/10 19:25:25 (4 years ago)
Author:
pocket
Message:

libtable: fix bug

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/libtable/table.h

    r37153 r37154  
    3737                } 
    3838                //keep data when resizing 
    39                 void resize(int x, int y) { 
     39                void resize(int w, int h) { 
    4040                        //loop flag 
    4141                        int i; 
    42                         int new_x, new_y; 
     42                        //present direction 
     43                        int now_x, now_y; 
    4344                        //when using vec1 
    4445                        if(flag == true) { 
     
    4849                                vec2.clear(); 
    4950                                //resize vec2 
    50                                 vec2.resize(x * y - 1); 
     51                                vec2.resize(w * h); 
    5152                                //and copy data from vec1 
    52                                 for(i = 0; i < vec1.size(); i++) { 
    53                                         new_x = i % width; 
    54                                         new_y = i / height; 
    55                                         vec2[new_x + new_y * width] = vec1[i]; 
     53                                while(1) { 
     54                                        now_x = i % width; 
     55                                        now_y = i / width; 
     56                                        if(now_x < w || now_y < h) { 
     57                                                break; 
     58                                        } 
     59                                        vec2[now_x + now_y * w] = vec1[i]; 
    5660                                } 
    5761                        } 
     
    6367                                vec1.clear(); 
    6468                                //resize vec2 
    65                                 vec1.resize(x * y - 1); 
     69                                vec1.resize(w * h); 
    6670                                //and copy data from vec1 
    67                                 for(i = 0; i < vec2.size(); i++) { 
    68                                         new_x = i % width; 
    69                                         new_y = i / height; 
    70                                         vec1[new_x + new_y * width] = vec2[i]; 
    71                                 } 
    72                         } 
    73                         //change width data 
    74                         width = x; 
    75                         height = y; 
     71                                while(1) { 
     72                                        now_x = i % width; 
     73                                        now_y = i / width; 
     74                                        if(now_x < w || now_y < h) { 
     75                                                break; 
     76                                        } 
     77                                        vec1[now_x + now_y * w] = vec2[i]; 
     78                                } 
     79                        } 
     80                        //set new size 
     81                        width = w; 
     82                        height = h; 
    7683                } 
    7784 
     
    120127                                for(i = 0; i < vec1.size(); i++) { 
    121128                                        x = i % width; 
    122                                         y = i / height; 
     129                                        y = i / width; 
    123130                                        //set feature direction 
    124131                                        new_x = (width - 1 - y); 
     
    137144                                for(i = 0; i < vec2.size(); i++) { 
    138145                                        x = i % width; 
    139                                         y = i / height; 
     146                                        y = i / width; 
    140147                                        //set new direction 
    141148                                        new_x = (width - 1 - y); 
     
    163170                                for(i = 0; i < vec1.size(); i++) { 
    164171                                        x = i % width; 
    165                                         y = i / height; 
     172                                        y = i / width; 
    166173                                        //set new direction 
    167174                                        new_x = y; 
     
    180187                                for(i = 0; i < vec2.size(); i++) { 
    181188                                        x = i % width; 
    182                                         y = i / height; 
     189                                        y = i / width; 
    183190                                        //set new direction 
    184191                                        new_x = y; 
     
    206213                                for(i = 0; i < vec1.size(); i++) { 
    207214                                        x = i % width; 
    208                                         y = i / height; 
     215                                        y = i / width; 
    209216                                        //set new direction 
    210217                                        new_x = (width - 1 - x); 
     
    222229                                for(i = 0; i < vec2.size(); i++) { 
    223230                                        x = i % width; 
    224                                         y = i / height; 
     231                                        y = i / width; 
    225232                                        //set  new direction 
    226233                                        new_x = (width - 1 - x); 
     
    244251                                for(i = 0; i < vec1.size(); i++) { 
    245252                                        x = i % width; 
    246                                         y = i / height; 
     253                                        y = i / width; 
    247254                                        //set new direction 
    248255                                        new_x = x; 
     
    260267                                for(i = 0; i < vec2.size(); i++) { 
    261268                                        x = i % width; 
    262                                         y = i / height; 
     269                                        y = i / width; 
    263270                                        //set new direction 
    264271                                        new_x = x;