mb_ds_util.h
changeset 16 4f584251c73d
parent 15 cadd89d14ca5
equal deleted inserted replaced
15:cadd89d14ca5 16:4f584251c73d
   150 }
   150 }
   151 
   151 
   152 static inline u8 *lb_data_purge(lb_buf_t *buf, int count) {
   152 static inline u8 *lb_data_purge(lb_buf_t *buf, int count) {
   153   buf->data_start += count + buf->marked_for_purge;
   153   buf->data_start += count + buf->marked_for_purge;
   154   buf->marked_for_purge = 0;
   154   buf->marked_for_purge = 0;
   155   if (buf->data_start > buf->data_end)
       
   156     buf->data_start = buf->data_end;
       
   157 
   155 
   158   if ((buf->data_end == buf->data_size) || (buf->data_start >= buf->max_data_start))
   156   if      (buf->data_start >= buf->data_end)
       
   157     buf->data_start = buf->data_end = 0; // no bytes in buffer, might just as well normalize it
       
   158   else if ((buf->data_end == buf->data_size) || (buf->data_start >= buf->max_data_start))
   159     return lb_normalize(buf);
   159     return lb_normalize(buf);
   160 
   160 
   161   return buf->data + buf->data_start;
   161   return buf->data + buf->data_start;
   162 }
   162 }
   163 
   163