summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--savevm.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/savevm.c b/savevm.c
index 6e4bb3a3df..038099979e 100644
--- a/savevm.c
+++ b/savevm.c
@@ -578,17 +578,14 @@ static int qemu_peek_byte(QEMUFile *f)
 
 int qemu_get_byte(QEMUFile *f)
 {
-    if (f->is_write) {
-        abort();
-    }
+    int result;
 
-    if (f->buf_index >= f->buf_size) {
-        qemu_fill_buffer(f);
-        if (f->buf_index >= f->buf_size) {
-            return 0;
-        }
+    result = qemu_peek_byte(f);
+
+    if (f->buf_index < f->buf_size) {
+        f->buf_index++;
     }
-    return f->buf[f->buf_index++];
+    return result;
 }
 
 int64_t qemu_ftell(QEMUFile *f)