Bläddra i källkod

fix read counter in EventBuffer

mikymod 12 år sedan
förälder
incheckning
abbdd51148
2 ändrade filer med 9 tillägg och 12 borttagningar
  1. 7 12
      engine/EventBuffer.cpp
  2. 2 0
      engine/EventBuffer.h

+ 7 - 12
engine/EventBuffer.cpp

@@ -5,7 +5,7 @@ namespace crown
 {
 {
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
-EventBuffer::EventBuffer() : m_size(0)
+EventBuffer::EventBuffer() : m_size(0), m_read(0)
 {
 {
 }
 }
 
 
@@ -17,8 +17,6 @@ void EventBuffer::push_event(uint32_t event_type, void* event_data, size_t event
 		flush();
 		flush();
 	}
 	}
 
 
-	Log::i("m_size: %d", m_size);
-
 	char* cur = m_buffer + m_size;
 	char* cur = m_buffer + m_size;
 
 
 	*(uint32_t*) cur = event_type;
 	*(uint32_t*) cur = event_type;
@@ -26,9 +24,6 @@ void EventBuffer::push_event(uint32_t event_type, void* event_data, size_t event
 	memcpy(cur + sizeof(event_type) + sizeof(event_size), event_data, event_size);
 	memcpy(cur + sizeof(event_type) + sizeof(event_size), event_data, event_size);
 
 
 	m_size += sizeof(event_type) + sizeof(event_size) + event_size;
 	m_size += sizeof(event_type) + sizeof(event_size) + event_size;
-
-	Log::i("event type: %d", event_type);
-	Log::i("event size: %d", event_size);
 }
 }
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
@@ -50,11 +45,9 @@ void EventBuffer::push_event_buffer(char* event_buffer, size_t buffer_size)
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 void* EventBuffer::get_next_event(uint32_t& event_type, size_t& event_size)
 void* EventBuffer::get_next_event(uint32_t& event_type, size_t& event_size)
 {
 {
-	static size_t read = 0;
-
-	if (read < m_size)
+	if (m_read < m_size)
 	{
 	{
-		char* cur = m_buffer + read;
+		char* cur = m_buffer + m_read;
 
 
 		// Saves type
 		// Saves type
 		event_type = *(uint32_t*) cur;
 		event_type = *(uint32_t*) cur;
@@ -62,12 +55,12 @@ void* EventBuffer::get_next_event(uint32_t& event_type, size_t& event_size)
 		event_size = *(size_t*)(cur + sizeof(uint32_t));
 		event_size = *(size_t*)(cur + sizeof(uint32_t));
 
 
 		// Set read to next event
 		// Set read to next event
-		read += sizeof(size_t) + sizeof(uint32_t) + event_size;
+		m_read += sizeof(size_t) + sizeof(uint32_t) + event_size;
 
 
 		return cur + sizeof(size_t) + sizeof(uint32_t);
 		return cur + sizeof(size_t) + sizeof(uint32_t);
 	}
 	}
 
 
-	read = 0;
+	m_read = 0;
 
 
 	return NULL;
 	return NULL;
 }
 }
@@ -76,12 +69,14 @@ void* EventBuffer::get_next_event(uint32_t& event_type, size_t& event_size)
 void EventBuffer::clear()
 void EventBuffer::clear()
 {
 {
 	m_size = 0;
 	m_size = 0;
+	m_read = 0;
 }
 }
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 void EventBuffer::flush()
 void EventBuffer::flush()
 {
 {
 	m_size = 0;
 	m_size = 0;
+	m_read = 0;
 }
 }
 
 
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------

+ 2 - 0
engine/EventBuffer.h

@@ -68,6 +68,8 @@ public:
 
 
 	size_t		m_size;
 	size_t		m_size;
 	char		m_buffer[MAX_OS_EVENT_BUFFER_SIZE];
 	char		m_buffer[MAX_OS_EVENT_BUFFER_SIZE];
+
+	uint32_t	m_read;
 };
 };
 
 
 } // namespace crown
 } // namespace crown