From b08e735f3c0078bacf31da1138c967980b22f3ff Mon Sep 17 00:00:00 2001 From: azw Date: Sat, 13 May 2023 03:09:45 +0000 Subject: [PATCH] 1 --- a8/fifobuffer.cc | 7 ++++++- a8/fifobuffer.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/a8/fifobuffer.cc b/a8/fifobuffer.cc index 3b98177..bb48349 100644 --- a/a8/fifobuffer.cc +++ b/a8/fifobuffer.cc @@ -17,6 +17,7 @@ namespace a8 } buf_ = (char*)malloc(buf_len); buf_len_ = buf_len; + capacity_ = buf_len; } FifoBuffer::~FifoBuffer() @@ -40,7 +41,11 @@ namespace a8 if (p != buf_ + head_) { abort(); } - + BufHead* buf_head = (BufHead*)(p - sizeof(BufHead)); + head_ += sizeof(BufHead) + buf_head->len; + if (head_ >= buf_len_) { + head_ = 0; + } } else { free(p); } diff --git a/a8/fifobuffer.h b/a8/fifobuffer.h index 1b081ba..324ff84 100644 --- a/a8/fifobuffer.h +++ b/a8/fifobuffer.h @@ -21,6 +21,7 @@ namespace a8 unsigned int buf_len_ = 0; std::atomic head_ = 0; std::atomic tail_ = 0; + std::atomic capacity_ = 0; };