6 int rle_decode_8bit(unsigned char* dest
, unsigned int dest_size
, const unsigned char* src
)
8 //unsigned char count = 0;
9 unsigned char prev_byte
= 0;
10 bool prev_byte_valid
= false;
12 const unsigned char* dest_end
= dest
+ dest_size
;
13 unsigned char* d
= dest
;
18 if (prev_byte_valid
&& (*src
== prev_byte
)) {
22 if (d
+ *src
> dest
+ dest_size
) {
23 TRACE("rle_decode_8bit: destination overflow!\n");
27 memset(d
, prev_byte
, *src
);
29 prev_byte_valid
= false;
33 prev_byte_valid
= true;