diff --git a/src/proc/engine/buffhandle.hpp b/src/proc/engine/buffhandle.hpp index affbf8dd6..eb87ffec2 100644 --- a/src/proc/engine/buffhandle.hpp +++ b/src/proc/engine/buffhandle.hpp @@ -52,6 +52,9 @@ namespace engine { + namespace error = lumiera::error; + using error::LUMIERA_ERROR_LIFECYCLE; + typedef size_t HashVal; ////////////TICKET #722 class BuffHandle; @@ -227,7 +230,9 @@ namespace engine { BU& BuffHandle::accessAs() { - REQUIRE (pBuffer_); + if (!pBuffer_) + throw error::Logic ("buffer not (yet) locked for access by clients" + , LUMIERA_ERROR_LIFECYCLE); return *reinterpret_cast (pBuffer_); } diff --git a/tests/components/proc/engine/buffer-provider-protocol-test.cpp b/tests/components/proc/engine/buffer-provider-protocol-test.cpp index fdfba1e67..6732668b6 100644 --- a/tests/components/proc/engine/buffer-provider-protocol-test.cpp +++ b/tests/components/proc/engine/buffer-provider-protocol-test.cpp @@ -76,7 +76,6 @@ namespace test { virtual void run (Arg) { - UNIMPLEMENTED ("build a diagnostic buffer provider and perform a full lifecycle"); verifySimpleUsage(); verifyStandardCase(); } @@ -93,10 +92,10 @@ namespace test { BuffHandle buff = provider.lockBufferFor(); CHECK (buff.isValid()); CHECK (sizeof(TestFrame) <= buff.size()); - buff.create() = testData(0); + buff.accessAs() = testData(0); - TestFrame& storage = buff.accessAs(); - CHECK (testData(0) == storage); + TestFrame& content = buff.accessAs(); + CHECK (testData(0) == content); buff.release(); CHECK (!buff.isValid());