diff --git a/src/misc/pv/queue.h b/src/misc/pv/queue.h index c2f5590..78c1e4a 100644 --- a/src/misc/pv/queue.h +++ b/src/misc/pv/queue.h @@ -64,7 +64,7 @@ public: * @return a shared_ptr to the queue element. * This is null if queue was full. */ - queueElementPtr & getFree(); + queueElementPtr getFree(); /** * Set the element returned by getFree as used. * Until this is called getUsed will not return it. @@ -77,14 +77,13 @@ public: * @return a shared_ptr to the queue element. * This is null if no used element is available.` */ - queueElementPtr & getUsed(); + queueElementPtr getUsed(); /** * Release the element obtained by the most recent call to getUsed. * @param element The element. */ void releaseUsed(queueElementPtr const &element); private: - queueElementPtr nullElement; queueElementPtrArray elements; // TODO use size_t instead int size; @@ -133,9 +132,9 @@ void Queue::clear() } template -std::tr1::shared_ptr & Queue::getFree() +std::tr1::shared_ptr Queue::getFree() { - if(numberFree==0) return nullElement; + if(numberFree==0) return queueElementPtr(); numberFree--; int ind = nextGetFree; std::tr1::shared_ptr queueElement = elements[nextGetFree++]; @@ -154,9 +153,9 @@ void Queue::setUsed(std::tr1::shared_ptr const &element) } template -std::tr1::shared_ptr & Queue::getUsed() +std::tr1::shared_ptr Queue::getUsed() { - if(numberUsed==0) return nullElement; + if(numberUsed==0) return queueElementPtr(); int ind = nextGetUsed; std::tr1::shared_ptr queueElement = elements[nextGetUsed++]; if(nextGetUsed>=size) nextGetUsed = 0;