Commits

bitsquid  committed c9fd3c4

Fix for queue::push().

  • Participants
  • Parent commits 0a996d4

Comments (0)

Files changed (2)

 			uint32_t to_insert = n;
 			if (insert + to_insert > size)
 				to_insert = size - insert;
-			memcpy(array::begin(q._data) + insert, items, to_insert);
+			memcpy(array::begin(q._data) + insert, items, to_insert * sizeof(T));
 			q._size += to_insert;
 			items += to_insert;
 			n -= to_insert;
-			memcpy(array::begin(q._data), items, n);
+			memcpy(array::begin(q._data), items, n * sizeof(T));
 			q._size += n;
 		}
 

File unit_test.cpp

 			int items[] = {1,2,3,4,5,6,7,8,9,10};
 			queue::push(q,items,10);
 			ASSERT(queue::size(q) == 10);
-			ASSERT(q[0] == 1);
-			ASSERT(q[9] == 10);
+			for (int i=0; i<10; ++i)
+				ASSERT(q[i] == i+1);
 			queue::consume(q, queue::end_front(q) - queue::begin_front(q));
 			queue::consume(q, queue::end_front(q) - queue::begin_front(q));
 			ASSERT(queue::size(q) == 0);