comparison util-src/ringbuffer.c @ 10953:c3b3ac63f4c3

util.ringbuffer: Ensure unsigned chars are always returned from :byte()
author Matthew Wild <mwild1@gmail.com>
date Wed, 24 Jun 2020 12:34:20 +0100
parents 6eb5d2bb11af
children 1f6f05a98fcd
comparison
equal deleted inserted replaced
10952:05d218aae3d1 10953:c3b3ac63f4c3
260 260
261 long wrapped_start, wrapped_end; 261 long wrapped_start, wrapped_end;
262 if(calc_splice_positions(b, start, end, &wrapped_start, &wrapped_end)) { 262 if(calc_splice_positions(b, start, end, &wrapped_start, &wrapped_end)) {
263 if(wrapped_end <= wrapped_start) { 263 if(wrapped_end <= wrapped_start) {
264 for(i = wrapped_start; i < (long)b->alen; i++) { 264 for(i = wrapped_start; i < (long)b->alen; i++) {
265 lua_pushinteger(L, b->buffer[i]); 265 lua_pushinteger(L, (unsigned char)b->buffer[i]);
266 } 266 }
267 for(i = 0; i < wrapped_end; i++) { 267 for(i = 0; i < wrapped_end; i++) {
268 lua_pushinteger(L, b->buffer[i]); 268 lua_pushinteger(L, (unsigned char)b->buffer[i]);
269 } 269 }
270 return wrapped_end + (b->alen - wrapped_start); 270 return wrapped_end + (b->alen - wrapped_start);
271 } else { 271 } else {
272 for(i = wrapped_start; i < wrapped_end; i++) { 272 for(i = wrapped_start; i < wrapped_end; i++) {
273 lua_pushinteger(L, b->buffer[i]); 273 lua_pushinteger(L, (unsigned char)b->buffer[i]);
274 } 274 }
275 return wrapped_end - wrapped_start; 275 return wrapped_end - wrapped_start;
276 } 276 }
277 } 277 }
278 278