mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
Core: SizeStream fixed
git-svn-id: svn://ultimatepp.org/upp/trunk@9986 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
a87d322fee
commit
37762af597
2 changed files with 16 additions and 32 deletions
|
|
@ -975,45 +975,32 @@ MemReadStream::MemReadStream() {}
|
|||
|
||||
// --------------------------- Size stream -----------------------
|
||||
|
||||
void SizeStream::Seek(int64 apos) {
|
||||
if(ptr - buffer + pos > size)
|
||||
size = ptr - buffer + pos;
|
||||
pos = apos;
|
||||
if(pos > GetSize())
|
||||
pos = GetSize();
|
||||
ptr = buffer;
|
||||
int64 SizeStream::GetSize() const
|
||||
{
|
||||
return int64(ptr - buffer + pos);
|
||||
}
|
||||
|
||||
int64 SizeStream::GetSize() const {
|
||||
return max(int64(ptr - buffer + pos), size);
|
||||
}
|
||||
|
||||
void SizeStream::SetSize(int64 asize) {
|
||||
size = asize;
|
||||
if(ptr - buffer + pos > size) {
|
||||
ptr = buffer;
|
||||
pos = size;
|
||||
}
|
||||
}
|
||||
|
||||
void SizeStream::_Put(const void *, dword sz) {
|
||||
wrlim = buffer + 128;
|
||||
void SizeStream::_Put(const void *, dword sz)
|
||||
{
|
||||
wrlim = buffer + 256;
|
||||
pos += ptr - buffer + sz;
|
||||
ptr = buffer;
|
||||
}
|
||||
|
||||
void SizeStream::_Put(int w) {
|
||||
void SizeStream::_Put(int w)
|
||||
{
|
||||
_Put(NULL, 1);
|
||||
}
|
||||
|
||||
bool SizeStream::IsOpen() const {
|
||||
bool SizeStream::IsOpen() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
SizeStream::SizeStream() {
|
||||
size = 0;
|
||||
style = STRM_WRITE|STRM_SEEK;
|
||||
buffer = h;
|
||||
SizeStream::SizeStream()
|
||||
{
|
||||
style = STRM_WRITE;
|
||||
buffer = ptr = h;
|
||||
}
|
||||
|
||||
// ------------------------------ Compare stream ----------------------------
|
||||
|
|
|
|||
|
|
@ -470,19 +470,16 @@ protected:
|
|||
virtual void _Put(const void *data, dword size);
|
||||
|
||||
public:
|
||||
virtual void Seek(int64 pos);
|
||||
virtual int64 GetSize() const;
|
||||
virtual void SetSize(int64 size);
|
||||
virtual bool IsOpen() const;
|
||||
|
||||
protected:
|
||||
int64 size;
|
||||
byte h[128];
|
||||
|
||||
public:
|
||||
operator int64() const { return GetSize(); }
|
||||
|
||||
void Open() { ptr = buffer; size = 0; ClearError(); }
|
||||
void Open() { ptr = buffer; ClearError(); }
|
||||
|
||||
SizeStream();
|
||||
};
|
||||
|
|
@ -504,7 +501,7 @@ private:
|
|||
Stream *stream;
|
||||
bool equal;
|
||||
int64 size;
|
||||
byte h[128];
|
||||
byte h[256];
|
||||
|
||||
void Compare(int64 pos, const void *data, int size);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue