| 356 | // utility functions also used by editing code |
| 357 | |
| 358 | block *blockcopy(const block &s) |
| 359 | { |
| 360 | block *b = (block *)new uchar[sizeof(block)+s.xs*s.ys*sizeof(sqr)]; |
| 361 | *b = s; |
| 362 | sqr *q = (sqr *)(b+1), *r = S(s.x,s.y); |
| 363 | size_t bs = s.xs * sizeof(sqr); |
| 364 | loopirev(s.ys) { memcpy(q, r, bs); q += s.xs; r += ssize; } |
| 365 | return b; |
| 366 | } |
| 367 | |
| 368 | void blocktexusage(const block &b, uchar *used) |
| 369 | { |
no test coverage detected