bitsquid avatar bitsquid committed c9fd3c4

Fix for queue::push().

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;
 			int items[] = {1,2,3,4,5,6,7,8,9,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);
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.