fix bug (found by Michael Hunley)

pull/2/head
weidai 2003-10-14 01:25:28 +00:00
parent 1b953a6a6c
commit cdcfe6b6af
2 changed files with 10 additions and 3 deletions

View File

@ -129,11 +129,18 @@ public:
// ******************************************************** // ********************************************************
ByteQueue::ByteQueue(unsigned int nodeSize) ByteQueue::ByteQueue(unsigned int nodeSize)
: m_autoNodeSize(m_nodeSize==0), m_nodeSize(nodeSize ? nodeSize : 256), m_lazyLength(0) : m_lazyLength(0)
{ {
SetNodeSize(nodeSize);
m_head = m_tail = new ByteQueueNode(m_nodeSize); m_head = m_tail = new ByteQueueNode(m_nodeSize);
} }
void ByteQueue::SetNodeSize(unsigned int nodeSize)
{
m_autoNodeSize = !nodeSize;
m_nodeSize = m_autoNodeSize ? 256 : nodeSize;
}
ByteQueue::ByteQueue(const ByteQueue &copy) ByteQueue::ByteQueue(const ByteQueue &copy)
{ {
CopyFrom(copy); CopyFrom(copy);

View File

@ -16,7 +16,7 @@ class ByteQueueNode;
class CRYPTOPP_DLL ByteQueue : public Bufferless<BufferedTransformation> class CRYPTOPP_DLL ByteQueue : public Bufferless<BufferedTransformation>
{ {
public: public:
ByteQueue(unsigned int m_nodeSize=0); ByteQueue(unsigned int nodeSize=0);
ByteQueue(const ByteQueue &copy); ByteQueue(const ByteQueue &copy);
~ByteQueue(); ~ByteQueue();
@ -39,7 +39,7 @@ public:
unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const; unsigned int CopyRangeTo2(BufferedTransformation &target, unsigned long &begin, unsigned long end=ULONG_MAX, const std::string &channel=NULL_CHANNEL, bool blocking=true) const;
// these member functions are not inherited // these member functions are not inherited
void SetNodeSize(unsigned int nodeSize) {m_nodeSize = nodeSize;} void SetNodeSize(unsigned int nodeSize);
unsigned long CurrentSize() const; unsigned long CurrentSize() const;
bool IsEmpty() const; bool IsEmpty() const;