2011-10-22 Brian Cameron <
[email protected]>
* SFEgnome-shell.spec, patches/gnome-shell-01-compile.diff: Bump to
3.2.1.
* SFEgnome-shell-extensions.spec: Bump to 3.2.0.
* SFEcaribou.spec: Add new spec, version 0.4.1.
* SFEspidermonkey.spec, patches/spidermonkey-01-js-ctypes.diff,
patches/spidermonkey-02-jsfunc.diff,
patches/spidermonkey-03-methodjit-sparc.diff,
patches/spidermonkey-04-jemalloc.diff,
patches/spidermonkey-05-pgo-ss12_2.diff,
patches/spidermonkey-06-use-system-libffi.diff,
patches/spidermonkey-07-makefile.diff: Add spec-file for the
Mozilla SpiderMonkey JavaScript Engine (js185).
* SFEmutter.spec, patches/mutter-03-compile.diff: Bump to 3.2.1.
* SFEgjs.spec, patches/gjs-01-solaris.diff: Bump to 1.30.0. Rework
patch.
* base-specs/telepathy-glib.spec: Bump to 0.16.0.
diff --git a/js/src/ctypes/CTypes.cpp b/js/src/ctypes/CTypes.cpp
index 763d6e6..8b04fc8 100644
--- a/js/src/ctypes/CTypes.cpp
+++ b/js/src/ctypes/CTypes.cpp
@@ -1023,6 +1023,19 @@ static JS_ALWAYS_INLINE TargetType Convert(FromType d)
return ConvertImpl<TargetType, FromType>::Convert(d);
}
+template<class Type>
+class no_bug_numeric_digits
+{
+ public:
+ static const int digits = numeric_limits<Type>::digits;
+};
+template<>
+class no_bug_numeric_digits<unsigned long long>
+{
+ public:
+ static const int digits = 64;
+};
+
template<class TargetType, class FromType>
static JS_ALWAYS_INLINE bool IsAlwaysExact()
{
@@ -1035,7 +1048,7 @@ static JS_ALWAYS_INLINE bool IsAlwaysExact()
// 2) If FromType is signed, TargetType must also be signed. (Floating point
// types are always signed.)
// 3) If TargetType is an exact integral type, FromType must be also.
- if (numeric_limits<TargetType>::digits < numeric_limits<FromType>::digits)
+ if (numeric_limits<TargetType>::digits < no_bug_numeric_digits<FromType>::digits)
return false;
if (numeric_limits<FromType>::is_signed &&