- if (buffers & (1<<0)) memcpy((char *)gp2x_screens[0] + offset, data, len);\r
- if (buffers & (1<<1)) memcpy((char *)gp2x_screens[1] + offset, data, len);\r
- if (buffers & (1<<2)) memcpy((char *)gp2x_screens[2] + offset, data, len);\r
- if (buffers & (1<<3)) memcpy((char *)gp2x_screens[3] + offset, data, len);\r
+ char *dst;\r
+ if (buffers & (1<<0)) { dst = (char *)gp2x_screens[0] + offset; if (dst != data) memcpy(dst, data, len); }\r
+ if (buffers & (1<<1)) { dst = (char *)gp2x_screens[1] + offset; if (dst != data) memcpy(dst, data, len); }\r
+ if (buffers & (1<<2)) { dst = (char *)gp2x_screens[2] + offset; if (dst != data) memcpy(dst, data, len); }\r
+ if (buffers & (1<<3)) { dst = (char *)gp2x_screens[3] + offset; if (dst != data) memcpy(dst, data, len); }\r