diff options
author | Steve Huston <shuston@riverace.com> | 2007-02-19 21:05:07 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2007-02-19 21:05:07 +0000 |
commit | f92985f1ec20b251eeea62aca6eab6b7d9167469 (patch) | |
tree | 7efe23287b8d960dba158b225a32f7e3baf4c6c7 /ACE/ace | |
parent | 8ecffef8fdb7b35419a540a8e8f12a3149e01064 (diff) | |
download | ATCD-f92985f1ec20b251eeea62aca6eab6b7d9167469.tar.gz |
ChangeLogTag:Mon Feb 19 21:02:55 UTC 2007 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ACE/ace')
-rw-r--r-- | ACE/ace/Atomic_Op.inl | 3 | ||||
-rw-r--r-- | ACE/ace/OS_NS_unistd.inl | 26 |
2 files changed, 16 insertions, 13 deletions
diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl index 81bf9d8a9f3..3e361f1940c 100644 --- a/ACE/ace/Atomic_Op.inl +++ b/ACE/ace/Atomic_Op.inl @@ -221,7 +221,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-= (unsigned long rhs) return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)), -static_cast<long>(rhs))) - rhs; #else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ - return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -rhs)) - rhs; + long l_rhs = static_cast<long> (rhs); + return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -l_rhs)) - rhs; #endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */ } diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl index a63620857ad..109acfab208 100644 --- a/ACE/ace/OS_NS_unistd.inl +++ b/ACE/ace/OS_NS_unistd.inl @@ -669,18 +669,20 @@ ACE_OS::llseek (ACE_HANDLE handle, ACE_LOFF_T offset, int whence) ? new_file_pointer.QuadPart : static_cast<ACE_LOFF_T> (-1)); # else - LONG low_offset = ACE_LOW_PART(offset); - LONG high_offset = ACE_HIGH_PART(offset); - - ACE_OFF_T const result = ::SetFilePointer (handle, - low_offset, - &high_offset, - whence); - - return - ((result != INVALID_SET_FILE_POINTER || GetLastError () == NO_ERROR) - ? result - : static_cast<ACE_LOFF_T> (-1)); + LARGE_INTEGER l_offset; + l_offset.QuadPart = offset; + LONG low_offset = l_offset.LowPart; + LONG high_offset = l_offset.HighPart; + + l_offset.LowPart = ::SetFilePointer (handle, + low_offset, + &high_offset, + whence); + if (l_offset.LowPart == INVALID_SET_FILE_POINTER && + GetLastError () != NO_ERROR) + return static_cast<ACE_LOFF_T> (-1); + l_offset.HighPart = high_offset; + return l_offset.QuadPart; # endif /* ACE_LACKS_SETFILEPOINTEREX */ # else ACE_OSCALL_RETURN (::llseek (handle, offset, whence), ACE_LOFF_T, -1); |