qioerr qbuffer_pop_back(qbuffer_t* buf) { qbytes_t* bytes; int64_t skip; int64_t len; qbuffer_iter_t chunk; if ( qbuffer_num_parts(buf) == 0 ) QIO_RETURN_CONSTANT_ERROR(EINVAL, "cannot pop from empty buffer"); chunk = qbuffer_end(buf); qbuffer_iter_prev_part(buf, &chunk); qbuffer_iter_get(chunk, qbuffer_end(buf), &bytes, &skip, &len); deque_pop_back(sizeof(qbuffer_part_t), &buf->deque); buf->offset_end -= len; return 0; }
err_t qbuffer_pop_back(qbuffer_t* buf) { qbytes_t* bytes; int64_t skip; int64_t len; qbuffer_iter_t chunk; if ( qbuffer_num_parts(buf) == 0 ) return EINVAL; chunk = qbuffer_end(buf); qbuffer_iter_prev_part(buf, &chunk); qbuffer_iter_get(chunk, qbuffer_end(buf), &bytes, &skip, &len); deque_pop_back(sizeof(qbuffer_part_t), &buf->deque); buf->offset_end -= len; return 0; }