Check that Redirect is not passed to exchange()
authorJeff Preshing <filter-github@preshing.com>
Mon, 15 Feb 2016 23:46:26 +0000 (18:46 -0500)
committerJeff Preshing <filter-github@preshing.com>
Mon, 15 Feb 2016 23:46:26 +0000 (18:46 -0500)
junction/ConcurrentMap_Grampa.h
junction/ConcurrentMap_LeapFrog.h
junction/ConcurrentMap_Linear.h
junction/extra/MapAdapter.h

index 8d67f2219650c9a4b5603617489f3d95b46fc94d..27e18ff3a5b4f1297f4f6b53835f8d3ce72a00cd 100644 (file)
@@ -335,6 +335,7 @@ public:
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
+            TURF_ASSERT(desired != Value(ValueTraits::Redirect));
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_Grampa, 14, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             for (;;) {
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_Grampa, 14, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             for (;;) {
index 389ce4088e145e2f5b631582083002ee6ce2b539..f6b1e6c0c24fd5f7d5d6a53542f10f899c2d9411 100644 (file)
@@ -133,6 +133,7 @@ public:
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
+            TURF_ASSERT(desired != Value(ValueTraits::Redirect));
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_LeapFrog, 4, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             for (;;) {
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_LeapFrog, 4, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             for (;;) {
index 345080734172c986273985fd4928f366a17a893d..b93d86e342be2ac1a5ab526d7cfafe8dd683eb49 100644 (file)
@@ -135,6 +135,7 @@ public:
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
 
         Value exchangeValue(Value desired) {
             TURF_ASSERT(desired != Value(ValueTraits::NullValue));
+            TURF_ASSERT(desired != Value(ValueTraits::Redirect));
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_Linear, 4, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             bool mustDouble = false;
             TURF_ASSERT(m_cell); // Cell must have been found or inserted
             TURF_TRACE(ConcurrentMap_Linear, 4, "[Mutator::exchangeValue] called", uptr(m_table), uptr(m_value));
             bool mustDouble = false;
index 9897d947df69136b1571c4e0434390cba269c626..a59ddd1f05e241e10baeae0bb70678eaabc3c8ff 100644 (file)
@@ -16,7 +16,7 @@
 #include <junction/Core.h>
 
 #ifndef JUNCTION_IMPL_MAPADAPTER_PATH
 #include <junction/Core.h>
 
 #ifndef JUNCTION_IMPL_MAPADAPTER_PATH
-#define JUNCTION_IMPL_MAPADAPTER_PATH "junction/extra/impl/MapAdapter_Grampa.h"
+#define JUNCTION_IMPL_MAPADAPTER_PATH "junction/extra/impl/MapAdapter_Linear.h"
 #endif
 
 #include JUNCTION_IMPL_MAPADAPTER_PATH
 #endif
 
 #include JUNCTION_IMPL_MAPADAPTER_PATH