Przeglądaj źródła

Kernel: DoubleBuffer can return early if read/write is called with !size.

Andreas Kling 6 lat temu
rodzic
commit
a02c945ef2
1 zmienionych plików z 4 dodań i 0 usunięć
  1. 4 0
      Kernel/DoubleBuffer.cpp

+ 4 - 0
Kernel/DoubleBuffer.cpp

@@ -19,6 +19,8 @@ void DoubleBuffer::flip()
 
 
 ssize_t DoubleBuffer::write(const byte* data, ssize_t size)
 ssize_t DoubleBuffer::write(const byte* data, ssize_t size)
 {
 {
+    if (!size)
+        return 0;
     LOCKER(m_lock);
     LOCKER(m_lock);
     m_write_buffer->append(data, size);
     m_write_buffer->append(data, size);
     compute_emptiness();
     compute_emptiness();
@@ -27,6 +29,8 @@ ssize_t DoubleBuffer::write(const byte* data, ssize_t size)
 
 
 ssize_t DoubleBuffer::read(byte* data, ssize_t size)
 ssize_t DoubleBuffer::read(byte* data, ssize_t size)
 {
 {
+    if (!size)
+        return 0;
     LOCKER(m_lock);
     LOCKER(m_lock);
     if (m_read_buffer_index >= m_read_buffer->size() && !m_write_buffer->is_empty())
     if (m_read_buffer_index >= m_read_buffer->size() && !m_write_buffer->is_empty())
         flip();
         flip();