X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6984e4147875396b257450ff793c20c2eb0e16a3..48f625bc2ce81132a2a8c2d7c524a03f1b7196e5:/src/common/longlong.cpp diff --git a/src/common/longlong.cpp b/src/common/longlong.cpp index 4646ce0d7b..b61b13d159 100644 --- a/src/common/longlong.cpp +++ b/src/common/longlong.cpp @@ -15,10 +15,6 @@ // headers // ============================================================================ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "longlong.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -51,14 +47,14 @@ void *wxLongLongNative::asArray() const { static unsigned char temp[8]; - temp[0] = (unsigned char)((m_ll >> 56) & 0xFF); - temp[1] = (unsigned char)((m_ll >> 48) & 0xFF); - temp[2] = (unsigned char)((m_ll >> 40) & 0xFF); - temp[3] = (unsigned char)((m_ll >> 32) & 0xFF); - temp[4] = (unsigned char)((m_ll >> 24) & 0xFF); - temp[5] = (unsigned char)((m_ll >> 16) & 0xFF); - temp[6] = (unsigned char)((m_ll >> 8) & 0xFF); - temp[7] = (unsigned char)((m_ll >> 0) & 0xFF); + temp[0] = wx_truncate_cast(unsigned char, ((m_ll >> 56) & 0xFF)); + temp[1] = wx_truncate_cast(unsigned char, ((m_ll >> 48) & 0xFF)); + temp[2] = wx_truncate_cast(unsigned char, ((m_ll >> 40) & 0xFF)); + temp[3] = wx_truncate_cast(unsigned char, ((m_ll >> 32) & 0xFF)); + temp[4] = wx_truncate_cast(unsigned char, ((m_ll >> 24) & 0xFF)); + temp[5] = wx_truncate_cast(unsigned char, ((m_ll >> 16) & 0xFF)); + temp[6] = wx_truncate_cast(unsigned char, ((m_ll >> 8) & 0xFF)); + temp[7] = wx_truncate_cast(unsigned char, ((m_ll >> 0) & 0xFF)); return temp; } @@ -67,14 +63,14 @@ void *wxULongLongNative::asArray() const { static unsigned char temp[8]; - temp[0] = (unsigned char)((m_ll >> 56) & 0xFF); - temp[1] = (unsigned char)((m_ll >> 48) & 0xFF); - temp[2] = (unsigned char)((m_ll >> 40) & 0xFF); - temp[3] = (unsigned char)((m_ll >> 32) & 0xFF); - temp[4] = (unsigned char)((m_ll >> 24) & 0xFF); - temp[5] = (unsigned char)((m_ll >> 16) & 0xFF); - temp[6] = (unsigned char)((m_ll >> 8) & 0xFF); - temp[7] = (unsigned char)((m_ll >> 0) & 0xFF); + temp[0] = wx_truncate_cast(unsigned char, ((m_ll >> 56) & 0xFF)); + temp[1] = wx_truncate_cast(unsigned char, ((m_ll >> 48) & 0xFF)); + temp[2] = wx_truncate_cast(unsigned char, ((m_ll >> 40) & 0xFF)); + temp[3] = wx_truncate_cast(unsigned char, ((m_ll >> 32) & 0xFF)); + temp[4] = wx_truncate_cast(unsigned char, ((m_ll >> 24) & 0xFF)); + temp[5] = wx_truncate_cast(unsigned char, ((m_ll >> 16) & 0xFF)); + temp[6] = wx_truncate_cast(unsigned char, ((m_ll >> 8) & 0xFF)); + temp[7] = wx_truncate_cast(unsigned char, ((m_ll >> 0) & 0xFF)); return temp; } @@ -134,6 +130,19 @@ wxLongLongWx& wxLongLongWx::Assign(double d) return *this; } +double wxLongLongWx::ToDouble() const +{ + double d = m_hi; + d *= 1.0 + (double)ULONG_MAX; + d += m_lo; + +#ifdef wxLONGLONG_TEST_MODE + wxASSERT( d == m_ll ); +#endif // wxLONGLONG_TEST_MODE + + return d; +} + wxLongLongWx wxLongLongWx::operator<<(int shift) const { wxLongLongWx ll(*this);