From: K.Ohta Date: Thu, 11 Apr 2019 18:43:08 +0000 (+0900) Subject: [RINGBUFFER] Fix bugs of empty / full. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b040d6dc5a712be22a66efcf5a29c4a18af548b7;p=csp-qt%2Fcommon_source_project-fm7.git [RINGBUFFER] Fix bugs of empty / full. [VM][COMMON_VM] Update SOVERSION. --- diff --git a/source/src/ringbuffer.cpp b/source/src/ringbuffer.cpp index eeb85bd0d..1735dba2d 100644 --- a/source/src/ringbuffer.cpp +++ b/source/src/ringbuffer.cpp @@ -22,7 +22,11 @@ void RINGBUFFER::write(int val, bool *p_fill_warn) wpt = 0; } cnt++; - if(cnt >= size) cnt = size; + if(cnt >= size) { + cnt = size; + rpt = wpt - 1; + if(rpt < 0) rpt = size - 1; + } if(fill_warn_val < cnt) { fill_warn_flag = true; } else { @@ -36,13 +40,16 @@ void RINGBUFFER::write(int val, bool *p_fill_warn) int RINGBUFFER::read(bool *p_empty_warn) { int val = 0; - if(cnt > 0) { + if(cnt) { val = buf[rpt++]; if(rpt >= size) { rpt = 0; } cnt--; - if(cnt < 0) cnt = 0; + if(cnt <= 0) { + cnt = 0; + wpt = rpt; + } if(empty_warn_val > cnt) { empty_warn_flag = true; } else { diff --git a/source/src/vm/common_vm/CMakeLists.txt b/source/src/vm/common_vm/CMakeLists.txt index ad97dceb8..f3b452ceb 100644 --- a/source/src/vm/common_vm/CMakeLists.txt +++ b/source/src/vm/common_vm/CMakeLists.txt @@ -1,6 +1,6 @@ message("* vm/common_vm") -SET(THIS_LIB_VERSION 2.11.0) +SET(THIS_LIB_VERSION 2.11.1) #include(cotire) set(s_vm_common_vm_srcs @@ -97,20 +97,6 @@ set(s_vm_common_vm_srcs ../z80pio.cpp ../z80sio.cpp -# ../libcpu_newdev/i86_base.cpp - -# ../libcpu_newdev/libcpu_i386/i386_opdef.cpp -# ../libcpu_newdev/libcpu_i386/i386_base_ext.cpp -# ../libcpu_newdev/libcpu_i386/i386op16.cpp -# ../libcpu_newdev/libcpu_i386/i386op32.cpp -# ../libcpu_newdev/libcpu_i386/i386ops.cpp -# ../libcpu_newdev/libcpu_i386/i486ops.cpp -# ../libcpu_newdev/libcpu_i386/pentops.cpp -# ../libcpu_newdev/libcpu_i386/x87ops.cpp -# ../libcpu_newdev/libcpu_i386/vtlb.cpp - -# ../libcpu_newdev/i386_base.cpp - # FM-7/77/AV ../fm7/hd6844.cpp ../fm7/mb61vh010.cpp