# HG changeset patch # User rubidium # Date 2008-04-24 17:53:45 # Node ID 5ee1c66111882a3f69e066589be678d8262fc598 # Parent d4e66aa13d42923e63fb2db457b258dd5837ec66 (svn r12873) -Fix [FS#1946]: MSVC is whining because it doesn't understand that bytes should be cast to ints. diff --git a/src/core/overflowsafe_type.hpp b/src/core/overflowsafe_type.hpp --- a/src/core/overflowsafe_type.hpp +++ b/src/core/overflowsafe_type.hpp @@ -139,9 +139,9 @@ template FORCEINLINE OverflowSafeInt operator / (uint a, OverflowSafeInt b) { return (OverflowSafeInt)a / (int)b; } /* Sometimes we got byte operator OverflowSafeInt instead of vice versa. Handle that properly */ -template FORCEINLINE OverflowSafeInt operator + (byte a, OverflowSafeInt b) { return b + a; } -template FORCEINLINE OverflowSafeInt operator - (byte a, OverflowSafeInt b) { return -b + a; } -template FORCEINLINE OverflowSafeInt operator * (byte a, OverflowSafeInt b) { return b * a; } +template FORCEINLINE OverflowSafeInt operator + (byte a, OverflowSafeInt b) { return b + (uint)a; } +template FORCEINLINE OverflowSafeInt operator - (byte a, OverflowSafeInt b) { return -b + (uint)a; } +template FORCEINLINE OverflowSafeInt operator * (byte a, OverflowSafeInt b) { return b * (uint)a; } template FORCEINLINE OverflowSafeInt operator / (byte a, OverflowSafeInt b) { return (OverflowSafeInt)a / (int)b; } typedef OverflowSafeInt OverflowSafeInt64;