OSDN Git Service

[RINGBUFFER] Fix bugs of empty / full.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 11 Apr 2019 18:43:08 +0000 (03:43 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 11 Apr 2019 18:43:08 +0000 (03:43 +0900)
[VM][COMMON_VM] Update SOVERSION.

source/src/ringbuffer.cpp
source/src/vm/common_vm/CMakeLists.txt

index eeb85bd..1735dba 100644 (file)
@@ -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 {
index ad97dce..f3b452c 100644 (file)
@@ -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