Use the new wx_truncate_cast for any narrowing conversions

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Michael Wetherell
2005-09-27 21:45:48 +00:00
parent a0fe0a18e5
commit 312f1e6e37

View File

@@ -164,7 +164,8 @@ wxStoredInputStream::wxStoredInputStream(wxInputStream& stream)
size_t wxStoredInputStream::OnSysRead(void *buffer, size_t size)
{
size_t count = wxMin(size, wx_truncate_cast(size_t, m_len - m_pos));
size_t count = wx_truncate_cast(size_t,
wxMin(size + wxFileOffset(0), m_len - m_pos + size_t(0)));
count = m_parent_i_stream->Read(buffer, count).LastRead();
m_pos += count;
@@ -552,11 +553,13 @@ public:
wxZipWeakLinks *AddEntry(wxZipEntry *entry, wxFileOffset key);
void RemoveEntry(wxFileOffset key)
{ m_entries.erase((wx__OffsetZipEntryMap::key_type)key); }
{ m_entries.erase(wx_truncate_cast(key_type, key)); }
wxZipEntry *GetEntry(wxFileOffset key) const;
bool IsEmpty() const { return m_entries.empty(); }
private:
typedef wx__OffsetZipEntryMap::key_type key_type;
~wxZipWeakLinks() { wxASSERT(IsEmpty()); }
int m_ref;
@@ -565,7 +568,7 @@ private:
wxZipWeakLinks *wxZipWeakLinks::AddEntry(wxZipEntry *entry, wxFileOffset key)
{
m_entries[(wx__OffsetZipEntryMap::key_type)key] = entry;
m_entries[wx_truncate_cast(key_type, key)] = entry;
m_ref++;
return this;
}
@@ -573,7 +576,7 @@ wxZipWeakLinks *wxZipWeakLinks::AddEntry(wxZipEntry *entry, wxFileOffset key)
wxZipEntry *wxZipWeakLinks::GetEntry(wxFileOffset key) const
{
wx__OffsetZipEntryMap::const_iterator it =
m_entries.find((wx__OffsetZipEntryMap::key_type)key);
m_entries.find(wx_truncate_cast(key_type, key));
return it != m_entries.end() ? it->second : NULL;
}
@@ -894,7 +897,7 @@ size_t wxZipEntry::WriteLocal(wxOutputStream& stream, wxMBConv& conv) const
const wxWX2MBbuf name_buf = conv.cWX2MB(unixName);
const char *name = name_buf;
if (!name) name = "";
wxUint16 nameLen = (wxUint16)strlen(name);
wxUint16 nameLen = wx_truncate_cast(wxUint16, strlen(name));
wxDataOutputStream ds(stream);
@@ -902,11 +905,13 @@ size_t wxZipEntry::WriteLocal(wxOutputStream& stream, wxMBConv& conv) const
ds.Write32(GetDateTime().GetAsDOS());
ds.Write32(m_Crc);
ds.Write32(m_CompressedSize != wxInvalidOffset ? (wxUint32)m_CompressedSize : 0);
ds.Write32(m_Size != wxInvalidOffset ? (wxUint32)m_Size : 0);
ds.Write32(m_CompressedSize != wxInvalidOffset ?
wx_truncate_cast(wxUint32, m_CompressedSize) : 0);
ds.Write32(m_Size != wxInvalidOffset ?
wx_truncate_cast(wxUint32, m_Size) : 0);
ds << nameLen;
wxUint16 extraLen = (wxUint16)GetLocalExtraLen();
wxUint16 extraLen = wx_truncate_cast(wxUint16, GetLocalExtraLen());
ds.Write16(extraLen);
stream.Write(name, nameLen);
@@ -958,31 +963,31 @@ size_t wxZipEntry::WriteCentral(wxOutputStream& stream, wxMBConv& conv) const
const wxWX2MBbuf name_buf = conv.cWX2MB(unixName);
const char *name = name_buf;
if (!name) name = "";
wxUint16 nameLen = (wxUint16)strlen(name);
wxUint16 nameLen = wx_truncate_cast(wxUint16, strlen(name));
const wxWX2MBbuf comment_buf = conv.cWX2MB(m_Comment);
const char *comment = comment_buf;
if (!comment) comment = "";
wxUint16 commentLen = (wxUint16)strlen(comment);
wxUint16 commentLen = wx_truncate_cast(wxUint16, strlen(comment));
wxUint16 extraLen = (wxUint16)GetExtraLen();
wxUint16 extraLen = wx_truncate_cast(wxUint16, GetExtraLen());
wxDataOutputStream ds(stream);
ds << CENTRAL_MAGIC << m_VersionMadeBy << m_SystemMadeBy;
ds.Write16((wxUint16)GetVersionNeeded());
ds.Write16((wxUint16)GetFlags());
ds.Write16((wxUint16)GetMethod());
ds.Write16(wx_truncate_cast(wxUint16, GetVersionNeeded()));
ds.Write16(wx_truncate_cast(wxUint16, GetFlags()));
ds.Write16(wx_truncate_cast(wxUint16, GetMethod()));
ds.Write32(GetDateTime().GetAsDOS());
ds.Write32(GetCrc());
ds.Write32((wxUint32)GetCompressedSize());
ds.Write32((wxUint32)GetSize());
ds.Write32(wx_truncate_cast(wxUint32, GetCompressedSize()));
ds.Write32(wx_truncate_cast(wxUint32, GetSize()));
ds.Write16(nameLen);
ds.Write16(extraLen);
ds << commentLen << m_DiskStart << m_InternalAttributes
<< m_ExternalAttributes << (wxUint32)GetOffset();
<< m_ExternalAttributes << wx_truncate_cast(wxUint32, GetOffset());
stream.Write(name, nameLen);
if (extraLen)
@@ -1024,7 +1029,7 @@ size_t wxZipEntry::ReadDescriptor(wxInputStream& stream)
{
// it's an info-zip record as expected
stream.Ungetch(buf + 4, sizeof(buf) - 4);
m_Crc = (wxUint32)m_CompressedSize;
m_Crc = wx_truncate_cast(wxUint32, m_CompressedSize);
m_CompressedSize = m_Size;
m_Size = u1;
return SUMS_SIZE + 4;
@@ -1044,8 +1049,8 @@ size_t wxZipEntry::WriteDescriptor(wxOutputStream& stream, wxUint32 crc,
wxDataOutputStream ds(stream);
ds.Write32(crc);
ds.Write32((wxUint32)compressedSize);
ds.Write32((wxUint32)size);
ds.Write32(wx_truncate_cast(wxUint32, compressedSize));
ds.Write32(wx_truncate_cast(wxUint32, size));
return SUMS_SIZE;
}
@@ -1067,13 +1072,20 @@ public:
wxFileOffset GetOffset() const { return m_Offset; }
wxString GetComment() const { return m_Comment; }
void SetDiskNumber(int num) { m_DiskNumber = (wxUint16)num; }
void SetStartDisk(int num) { m_StartDisk = (wxUint16)num; }
void SetEntriesHere(int num) { m_EntriesHere = (wxUint16)num; }
void SetTotalEntries(int num) { m_TotalEntries = (wxUint16)num; }
void SetSize(wxFileOffset size) { m_Size = (wxUint32)size; }
void SetOffset(wxFileOffset offset) { m_Offset = (wxUint32)offset; }
void SetComment(const wxString& comment) { m_Comment = comment; }
void SetDiskNumber(int num)
{ m_DiskNumber = wx_truncate_cast(wxUint16, num); }
void SetStartDisk(int num)
{ m_StartDisk = wx_truncate_cast(wxUint16, num); }
void SetEntriesHere(int num)
{ m_EntriesHere = wx_truncate_cast(wxUint16, num); }
void SetTotalEntries(int num)
{ m_TotalEntries = wx_truncate_cast(wxUint16, num); }
void SetSize(wxFileOffset size)
{ m_Size = wx_truncate_cast(wxUint32, size); }
void SetOffset(wxFileOffset offset)
{ m_Offset = wx_truncate_cast(wxUint32, offset); }
void SetComment(const wxString& comment)
{ m_Comment = comment; }
bool Read(wxInputStream& stream, wxMBConv& conv);
bool Write(wxOutputStream& stream, wxMBConv& conv) const;
@@ -1384,7 +1396,8 @@ bool wxZipInputStream::FindEndRecord()
wxFileOffset minpos = wxMax(pos - 65535L, 0);
while (pos > minpos) {
size_t len = (size_t)(pos - wxMax(pos - (BUFSIZE - 3), minpos));
size_t len = wx_truncate_cast(size_t,
pos - wxMax(pos - (BUFSIZE - 3), minpos));
memcpy(buf.data() + len, buf, 3);
pos -= len;
@@ -1775,10 +1788,10 @@ wxFileOffset wxZipInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode)
default : nextpos = pos; break; /* just to fool compiler, never happens */
}
size_t toskip wxDUMMY_INITIALIZE(0);
wxFileOffset toskip wxDUMMY_INITIALIZE(0);
if ( nextpos >= pos )
{
toskip = (size_t)(nextpos - pos);
toskip = nextpos - pos;
}
else
{
@@ -1789,17 +1802,17 @@ wxFileOffset wxZipInputStream::OnSysSeek(wxFileOffset seek, wxSeekMode mode)
m_lasterror = wxSTREAM_READ_ERROR;
return pos;
}
toskip = (size_t)nextpos;
toskip = nextpos;
}
if ( toskip > 0 )
{
const size_t BUFSIZE = 4096;
const int BUFSIZE = 4096;
size_t sz;
char buffer[BUFSIZE];
while ( toskip > 0 )
{
sz = wxMin(toskip, BUFSIZE);
sz = wx_truncate_cast(size_t, wxMin(toskip, BUFSIZE));
Read(buffer, sz);
toskip -= sz;
}