|
|
- case 1: *((unsigned char*)buffer)++ = fill_value; return; | - case 1: *((unsigned char*)buffer)++ = fill_value; return; |
- case 2: *((unsigned short*)buffer)++ = fill_value; return; | - case 2: *((unsigned short*)buffer)++ = fill_value; return; |
- case 3: { unsigned char *p=buffer; p[2]=p[1]=p[0] = fill_value;} return; | - case 3: { unsigned char *p=buffer; p[2]=p[1]=p[0] = fill_value;} return; |
+ case 1: ++p; *p = fill_value; return; |
|
+ case 2: ++s; *s = fill_value; return; |
|
+ case 3: { p[2]=p[1]=p[0] = fill_value;} return; | + case 3: { p[2]=p[1]=p[0] = fill_value;} return; |
default: | default: |
if ((int)buffer&1) { | if ((int)buffer&1) { |
- *((unsigned char*)buffer)++ = fill_value; size--; | - *((unsigned char*)buffer)++ = fill_value; size--; |
+ ++p; *p = fill_value; size--; |
|
+ buffer = p; | + buffer = p; |
} | } |
if ((int)buffer&2) { | if ((int)buffer&2) { |
- *((unsigned short*)buffer)++ = fill_value; size-=2; | - *((unsigned short*)buffer)++ = fill_value; size-=2; |
+ ++s; *s = fill_value; size-=2; |
|
+ buffer = s; | + buffer = s; |
} | } |
lsize = size>>2; | lsize = size>>2; |
+ unsigned int *up = buffer; | + unsigned int *up = buffer; |
while(lsize) { | while(lsize) { |
- *((unsigned int*)buffer)++ = fill_value; | - *((unsigned int*)buffer)++ = fill_value; |
+ ++up; |
|
+ *up = fill_value; | + *up = fill_value; |
lsize--; | lsize--; |
} | } |
+ buffer = up; | + buffer = up; |
if (size&2) { | if (size&2) { |
- *((unsigned short*)buffer)++ = fill_value; | - *((unsigned short*)buffer)++ = fill_value; |
+ s = buffer; | + s = buffer; |
+ ++s; |
|
+ *s = fill_value; | + *s = fill_value; |
} | } |
if (size&1) { | if (size&1) { |
- *((unsigned char*)buffer)++ = fill_value; | - *((unsigned char*)buffer)++ = fill_value; |
+ p = buffer; | + p = buffer; |
+ ++p; |
|
+ *p = fill_value; | + *p = fill_value; |
} | } |
} | } |
} | } |