Hello community,
here is the log from the commit of package xulrunner for openSUSE:12.2 checked in at 2012-07-31 14:05:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2/xulrunner (Old)
and /work/SRC/openSUSE:12.2/.xulrunner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xulrunner", Maintainer is "gnome-maintainers@suse.de"
Changes:
--------
--- /work/SRC/openSUSE:12.2/xulrunner/xulrunner.changes 2012-07-30 02:38:14.000000000 +0200
+++ /work/SRC/openSUSE:12.2/.xulrunner.new/xulrunner.changes 2012-07-31 14:19:08.000000000 +0200
@@ -2 +2 @@
-Fri Jun 15 12:40:23 UTC 2012 - wr@rosenauer.org
+Sat Jul 14 19:33:44 UTC 2012 - wr@rosenauer.org
@@ -4,2 +4,38 @@
-- update to 13.0.1
- * bugfix release
+- update to 14.0.1 (bnc#771583)
+ * MFSA 2012-42/CVE-2012-1949/CVE-2012-1948
+ Miscellaneous memory safety hazards
+ * MFSA 2012-43/CVE-2012-1950
+ Incorrect URL displayed in addressbar through drag and drop
+ * MFSA 2012-44/CVE-2012-1951/CVE-2012-1954/CVE-2012-1953/CVE-2012-1952
+ Gecko memory corruption
+ * MFSA 2012-45/CVE-2012-1955 (bmo#757376)
+ Spoofing issue with location
+ * MFSA 2012-46/CVE-2012-1966 (bmo#734076)
+ XSS through data: URLs
+ * MFSA 2012-47/CVE-2012-1957 (bmo#750096)
+ Improper filtering of javascript in HTML feed-view
+ * MFSA 2012-48/CVE-2012-1958 (bmo#750820)
+ use-after-free in nsGlobalWindow::PageHidden
+ * MFSA 2012-49/CVE-2012-1959 (bmo#754044, bmo#737559)
+ Same-compartment Security Wrappers can be bypassed
+ * MFSA 2012-50/CVE-2012-1960 (bmo#761014)
+ Out of bounds read in QCMS
+ * MFSA 2012-51/CVE-2012-1961 (bmo#761655)
+ X-Frame-Options header ignored when duplicated
+ * MFSA 2012-52/CVE-2012-1962 (bmo#764296)
+ JSDependentString::undepend string conversion results in memory
+ corruption
+ * MFSA 2012-53/CVE-2012-1963 (bmo#767778)
+ Content Security Policy 1.0 implementation errors cause data
+ leakage
+ * MFSA 2012-55/CVE-2012-1965 (bmo#758990)
+ feed: URLs with an innerURI inherit security context of page
+ * MFSA 2012-56/CVE-2012-1967 (bmo#758344)
+ Code execution through javascript: URLs
+- license change from tri license to MPL-2.0
+- require NSS 3.13.5
+- PPC fixes:
+ * reenabled mozilla-yarr-pcre.patch to fix build for PPC
+ * add patches for bmo#750620 and bmo#746112
+ * fix xpcshell segfault on ppc
+- build plugin-container on every arch
Old:
----
l10n-13.0.1.tar.bz2
mozilla-disable-neon-option.patch
mozilla-libnotify.patch
mozilla-linux3.patch
mozilla-nsSound.patch
mozilla-revert_621446.patch
mozilla-system-nspr.patch
xulrunner-13.0.1-source.tar.bz2
New:
----
l10n-14.0.1.tar.bz2
mozilla-ppc.patch
xulrunner-14.0.1-source.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xulrunner.spec ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -43,15 +43,15 @@
BuildRequires: wireless-tools
%endif
BuildRequires: mozilla-nspr-devel >= 4.9.0
-BuildRequires: mozilla-nss-devel >= 3.13.4
-Version: 13.0.1
+BuildRequires: mozilla-nss-devel >= 3.13.5
+Version: 14.0.1
Release: 0
-%define releasedate 2012061400
-%define version_internal 13.0.1
-%define apiversion 13
-%define uaweight 1300001
+%define releasedate 2012071300
+%define version_internal 14.0.1
+%define apiversion 14
+%define uaweight 1400001
Summary: Mozilla Runtime Environment
-License: MPL-1.1 or GPL-2.0+ or LGPL-2.1+
+License: MPL-2.0
Group: Productivity/Other
Url: http://www.mozilla.org/
Provides: gecko
@@ -77,14 +77,9 @@
Patch7: mozilla-ntlm-full-path.patch
Patch8: mozilla-dump_syms-static.patch
Patch9: mozilla-sle11.patch
-Patch10: mozilla-linux3.patch
-Patch11: mozilla-disable-neon-option.patch
-Patch12: mozilla-system-nspr.patch
-Patch13: mozilla-revert_621446.patch
-Patch14: mozilla-yarr-pcre.patch
-Patch15: mozilla-libnotify.patch
-Patch16: mozilla-gcc47.patch
-Patch17: mozilla-nsSound.patch
+Patch11: mozilla-yarr-pcre.patch
+Patch12: mozilla-gcc47.patch
+Patch13: mozilla-ppc.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: mozilla-js = %{version}
Requires(post): update-alternatives coreutils
@@ -94,12 +89,10 @@
%define has_system_nss 1
%define has_system_cairo 0
%define localize 0
-%ifarch ppc ppc64 s390 s390x ia64 %arm
+%ifarch ppc ppc64 s390 s390x ia64
%define crashreporter 0
-%define plugincontainer 0
%else
%define crashreporter 1
-%define plugincontainer 1
%endif
### configuration end ###
%define _use_internal_dependency_generator 0
@@ -166,7 +159,7 @@
Summary: Extra translations for XULRunner
Group: System/Localization
Requires: %{name} = %{version}
-Provides: locale(%{name}:af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mn;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;sw;ta;ta_LK;te;th;tr;uk;vi;zu)
+Provides: locale(%{name}:af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
Obsoletes: %{name}-translations < %{version}-%{release}
%description translations-other
@@ -201,14 +194,9 @@
%if %suse_version < 1120
%patch9 -p1
%endif
-%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
-#%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
%build
# no need to add build time to binaries
@@ -289,11 +277,6 @@
ac_add_options --disable-crashreporter
EOF
%endif
-%if ! %plugincontainer
-cat << EOF >> $MOZCONFIG
-ac_add_options --disable-ipc
-EOF
-%endif
# S/390
%ifarch s390 s390x
cat << EOF >> $MOZCONFIG
@@ -303,7 +286,17 @@
# ARM
%ifarch %arm
cat << EOF >> $MOZCONFIG
-ac_add_options --disable-neon
+%ifarch armv7l
+ac_add_options --with-arch=armv7-a
+ac_add_options --with-float-abi=hard
+ac_add_options --with-fpu=vfpv3-d16
+ac_add_options --with-thumb=yes
+%endif
+%ifarch armv5tel
+ac_add_options --with-arch=armv5te
+ac_add_options --with-float-abi=soft
+ac_add_options --with-thumb=no
+%endif
EOF
%endif
make -f client.mk build
@@ -464,15 +457,13 @@
%{_libdir}/xulrunner-%{version_internal}/chrome.manifest
%{_libdir}/xulrunner-%{version_internal}/dependentlibs.list
%{_libdir}/xulrunner-%{version_internal}/mozilla-xremote-client
-%if %plugincontainer
%{_libdir}/xulrunner-%{version_internal}/plugin-container
-%endif
-%{_libdir}/xulrunner-%{version_internal}/run-mozilla.sh
%{_libdir}/xulrunner-%{version_internal}/xulrunner
%{_libdir}/xulrunner-%{version_internal}/xulrunner-bin
%{_libdir}/xulrunner-%{version_internal}/xulrunner-stub
%{_libdir}/xulrunner-%{version_internal}/platform.ini
%{_libdir}/xulrunner-%{version_internal}/omni.ja
+%{_libdir}/xulrunner-%{version_internal}/README.xulrunner
# crashreporter files
%if %crashreporter
%{_libdir}/xulrunner-%{version_internal}/crashreporter
@@ -499,7 +490,6 @@
%files devel
%defattr(-,root,root)
-%{_libdir}/xulrunner-%{version_internal}/xpcshell
%{_libdir}/xulrunner-devel-%{version_internal}/
# FIXME symlink dynamic libs below sdk/lib
%attr(644,root,root) %{_libdir}/pkgconfig/*
++++++ compare-locales.tar.bz2 ++++++
++++++ create-tar.sh ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -2,8 +2,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_13_0_1_RELEASE"
-VERSION="13.0.1"
+RELEASE_TAG="FIREFOX_14_0_1_RELEASE"
+VERSION="14.0.1"
# mozilla
hg clone http://hg.mozilla.org/$BRANCH mozilla
++++++ l10n-13.0.1.tar.bz2 -> l10n-14.0.1.tar.bz2 ++++++
/work/SRC/openSUSE:12.2/xulrunner/l10n-13.0.1.tar.bz2 /work/SRC/openSUSE:12.2/.xulrunner.new/l10n-14.0.1.tar.bz2 differ: char 11, line 1
++++++ mozilla-gcc47.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -1,113 +1,14 @@
# HG changeset patch
-# Parent 7bc8f0e5bed8cb2212e27228e628861737256459
-Patch to make Mozilla build with gcc 4.7, including
-- Bug 734490 - "no viable overloaded 'PRIxPTR'" when building with Clang or GCC 4.7 (TM: Mozilla14)
-- Bug 741348 - Work around crashreporter client build failure with gcc 4.7 (TM: Mozilla15)
+# User Mike Hommey
+# Date 1336991062 -7200
+# Node ID 234d34706ea1a0e9a9d2c61561c4441590712df0
+# Parent 0f2f145158b595f5242bf0d79b2de413373730c1
+Bug 741348 - Work around crashreporter client build failure with gcc 4.7
-diff --git a/layout/base/tests/TestPoisonArea.cpp b/layout/base/tests/TestPoisonArea.cpp
---- a/layout/base/tests/TestPoisonArea.cpp
-+++ b/layout/base/tests/TestPoisonArea.cpp
-@@ -392,53 +392,53 @@ ReservePoisonArea()
- {
- if (sizeof(uintptr_t) == 8) {
- // Use the hardware-inaccessible region.
- // We have to avoid 64-bit constants and shifts by 32 bits, since this
- // code is compiled in 32-bit mode, although it is never executed there.
- uintptr_t result = (((uintptr_t(0x7FFFFFFFu) << 31) << 1 |
- uintptr_t(0xF0DEAFFFu)) &
- ~uintptr_t(PAGESIZE-1));
-- printf("INFO | poison area assumed at 0x%.*"PRIxPTR"\n", SIZxPTR, result);
-+ printf("INFO | poison area assumed at 0x%.*" PRIxPTR "\n", SIZxPTR, result);
- return result;
- } else {
- // First see if we can allocate the preferred poison address from the OS.
- uintptr_t candidate = (0xF0DEAFFF & ~(PAGESIZE-1));
- void *result = ReserveRegion(candidate, false);
- if (result == (void *)candidate) {
- // success - inaccessible page allocated
-- printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+ printf("INFO | poison area allocated at 0x%.*" PRIxPTR
- " (preferred addr)\n", SIZxPTR, (uintptr_t)result);
- return candidate;
- }
-
- // That didn't work, so see if the preferred address is within a range
- // of permanently inacessible memory.
- if (ProbeRegion(candidate)) {
- // success - selected page cannot be usable memory
- if (result != MAP_FAILED)
- ReleaseRegion(result);
-- printf("INFO | poison area assumed at 0x%.*"PRIxPTR
-+ printf("INFO | poison area assumed at 0x%.*" PRIxPTR
- " (preferred addr)\n", SIZxPTR, candidate);
- return candidate;
- }
-
- // The preferred address is already in use. Did the OS give us a
- // consolation prize?
- if (result != MAP_FAILED) {
-- printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+ printf("INFO | poison area allocated at 0x%.*" PRIxPTR
- " (consolation prize)\n", SIZxPTR, (uintptr_t)result);
- return (uintptr_t)result;
- }
-
- // It didn't, so try to allocate again, without any constraint on
- // the address.
- result = ReserveRegion(0, false);
- if (result != MAP_FAILED) {
-- printf("INFO | poison area allocated at 0x%.*"PRIxPTR
-+ printf("INFO | poison area allocated at 0x%.*" PRIxPTR
- " (fallback)\n", SIZxPTR, (uintptr_t)result);
- return (uintptr_t)result;
- }
-
- printf("ERROR | no usable poison area found\n");
- return 0;
- }
- }
-@@ -450,17 +450,17 @@ static uintptr_t
- ReservePositiveControl()
- {
-
- void *result = ReserveRegion(0, false);
- if (result == MAP_FAILED) {
- printf("ERROR | allocating positive control | %s\n", LastErrMsg());
- return 0;
- }
-- printf("INFO | positive control allocated at 0x%.*"PRIxPTR"\n",
-+ printf("INFO | positive control allocated at 0x%.*" PRIxPTR "\n",
- SIZxPTR, (uintptr_t)result);
- return (uintptr_t)result;
- }
-
- /* The "negative control" area confirms that our probe logic does detect a
- * page that is readable, writable, or executable.
- */
- static uintptr_t
-@@ -481,17 +481,17 @@ ReserveNegativeControl()
- // Now mark it executable as well as readable and writable.
- // (mmap(PROT_EXEC) may fail when applied to anonymous memory.)
-
- if (MakeRegionExecutable(result)) {
- printf("ERROR | making negative control executable | %s\n", LastErrMsg());
- return 0;
- }
-
-- printf("INFO | negative control allocated at 0x%.*"PRIxPTR"\n",
-+ printf("INFO | negative control allocated at 0x%.*" PRIxPTR "\n",
- SIZxPTR, (uintptr_t)result);
- return (uintptr_t)result;
- }
-
- static void
- JumpTo(uintptr_t opaddr)
- {
- #ifdef __ia64
diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in b/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
--- a/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
+++ b/toolkit/crashreporter/google-breakpad/src/common/linux/Makefile.in
-@@ -61,8 +61,11 @@ HOST_CPPSRCS = \
+@@ -65,8 +65,11 @@ HOST_CPPSRCS = \
file_id.cc \
guid_creator.cc \
$(NULL)
++++++ mozilla-pkgconfig.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -14,7 +14,7 @@
# Add pkg-config files to the install:: target
+# the apilibdir always ends with 1.9 as every patch update will provide a link
-+apilibdir = $(dir $(installdir))xulrunner-13
++apilibdir = $(dir $(installdir))xulrunner-14
+
pkg_config_files = \
libxul.pc \
++++++ mozilla-ppc.patch ++++++
# HG changeset patch
# Parent 67e6f1e1d06ca3d54cea1d26877c2a68f0c096e5
# User Wolfgang Rosenauer
Bug 746112 - RegExp hang on ppc64 in execute.
Bug 750620 - Make double-conversion portable to exotic architectures. TM: mozilla15
diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h
--- a/js/src/yarr/YarrInterpreter.h
+++ b/js/src/yarr/YarrInterpreter.h
@@ -162,17 +162,17 @@ struct ByteTerm {
, m_invert(invert)
{
atom.characterClass = characterClass;
atom.quantityType = QuantifierFixedCount;
atom.quantityCount = 1;
inputPosition = inputPos;
}
- ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos)
+ ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos) __attribute__((noinline))
: type(type)
, m_capture(capture)
, m_invert(false)
{
atom.subpatternId = subpatternId;
atom.parenthesesDisjunction = parenthesesInfo;
atom.quantityType = QuantifierFixedCount;
atom.quantityCount = 1;
@@ -183,17 +183,17 @@ struct ByteTerm {
: type(type)
, m_capture(false)
, m_invert(invert)
{
atom.quantityType = QuantifierFixedCount;
atom.quantityCount = 1;
}
- ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos)
+ ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos) __attribute__((noinline))
: type(type)
, m_capture(capture)
, m_invert(invert)
{
atom.subpatternId = subpatternId;
atom.quantityType = QuantifierFixedCount;
atom.quantityCount = 1;
inputPosition = inputPos;
diff --git a/js/src/yarr/YarrPattern.h b/js/src/yarr/YarrPattern.h
--- a/js/src/yarr/YarrPattern.h
+++ b/js/src/yarr/YarrPattern.h
@@ -166,17 +166,17 @@ struct PatternTerm {
, m_capture(false)
, m_invert(invert)
{
characterClass = charClass;
quantityType = QuantifierFixedCount;
quantityCount = 1;
}
- PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* disjunction, bool capture = false, bool invert = false)
+ PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* disjunction, bool capture = false, bool invert = false) __attribute__((noinline))
: type(type)
, m_capture(capture)
, m_invert(invert)
{
parentheses.disjunction = disjunction;
parentheses.subpatternId = subpatternId;
parentheses.isCopy = false;
parentheses.isTerminal = false;
diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
--- a/memory/jemalloc/jemalloc.c
+++ b/memory/jemalloc/jemalloc.c
@@ -1086,17 +1086,19 @@ struct arena_s {
static unsigned ncpus;
#endif
/*
* When MALLOC_STATIC_SIZES is defined most of the parameters
* controlling the malloc behavior are defined as compile-time constants
* for best performance and cannot be altered at runtime.
*/
+#if !(defined(__powerpc__))
#define MALLOC_STATIC_SIZES 1
+#endif
#ifdef MALLOC_STATIC_SIZES
/*
* VM page size. It must divide the runtime CPU page size or the code
* will abort.
*/
#define pagesize_2pow ((size_t) 12)
diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
--- a/mfbt/double-conversion/utils.h
+++ b/mfbt/double-conversion/utils.h
@@ -49,17 +49,18 @@
// evaluate: 89255.0/1e22. If the floating-point stack is 64 bits wide then
// the result is equal to 89255e-22.
// The best way to test this, is to create a division-function and to compare
// the output of the division with the expected result. (Inlining must be
// disabled.)
// On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
#if defined(_M_X64) || defined(__x86_64__) || \
defined(__ARMEL__) || \
- defined(_MIPS_ARCH_MIPS32R2)
+ defined(_MIPS_ARCH_MIPS32R2) || \
+ defined(__powerpc__) || defined(__powerpc64__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(_M_IX86) || defined(__i386__)
#if defined(_WIN32)
// Windows uses a 64bit wide floating point stack.
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#else
#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
#endif // _WIN32
++++++ mozilla-prefer_plugin_pref.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -4,7 +4,7 @@
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
-@@ -1580,17 +1580,48 @@ nsPluginHost::FindPluginForType(const ch
+@@ -1561,17 +1561,45 @@ nsPluginHost::FindPluginForType(const ch
bool aCheckEnabled)
{
if (!aMimeType) {
@@ -13,18 +13,15 @@
LoadPlugins();
-+ nsresult res;
-+ nsCOMPtr<nsIPrefBranch> prefB (do_QueryInterface(mPrefService));
-+
+ char *preferredPluginPath = NULL;
+ nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
+ mimetypePrefString.Append(aMimeType);
+ const char *mimetypePrefChar = mimetypePrefString.get();
-+ res = prefB->GetCharPref(mimetypePrefChar, &preferredPluginPath);
-+
-+ if(!NS_SUCCEEDED(res)) preferredPluginPath = NULL;
++ nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
++ preferredPluginPath = (char*) pluginPath.get();
+
nsPluginTag *plugin = mPlugins;
++
+ if(preferredPluginPath) {
+ while (nsnull != plugin) {
+ if (0 == PL_strcasecmp(plugin->mFileName.get(), preferredPluginPath) ||
++++++ mozilla-yarr-pcre.patch ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -1,15 +1,21 @@
+# HG changeset patch
+# Parent 831eeca7b7cfa9ae2458d9efafe168027259965f
+# User Landry Breuil
+Bug 691898 - Use YARR regexp interpreter instead of PCRE on platforms where YARR JIT is not supported r=dmandelin
+PCRE doesn't build anyway.
+
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
-@@ -332,30 +332,33 @@ CPPSRCS += checks.cc \
- platform.cc \
- utils.cc \
- $(NONE)
-
+@@ -315,30 +315,33 @@ ifeq (mips, $(findstring mips,$(TARGET_C
+ CPPSRCS += TrampolineMIPS.cpp
+ endif
#
- # END enclude sources for V8 dtoa
+ # END enclude sources for the method JIT
#############################################
+ endif
+
-# For architectures without YARR JIT, PCRE is faster than the YARR
-# interpreter (bug 684559).
-
@@ -70,7 +76,7 @@
diff --git a/js/src/vm/RegExpObject-inl.h b/js/src/vm/RegExpObject-inl.h
--- a/js/src/vm/RegExpObject-inl.h
+++ b/js/src/vm/RegExpObject-inl.h
-@@ -132,16 +132,17 @@ RegExpObject::setMultiline(bool enabled)
+@@ -132,26 +132,28 @@ RegExpObject::setMultiline(bool enabled)
}
inline void
@@ -88,10 +94,21 @@
return cx->methodJitEnabled;
#else
return true;
+ #endif
+ }
++#endif
+
+ inline bool
+ RegExpToShared(JSContext *cx, JSObject &obj, RegExpGuard *g)
+ {
+ JS_ASSERT(ObjectClassIs(obj, ESClass_RegExp, cx));
+ if (obj.isRegExp())
+ return obj.asRegExp().getShared(cx, g);
+ return Proxy::regexp_toShared(cx, &obj, g);
diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp
--- a/js/src/vm/RegExpObject.cpp
+++ b/js/src/vm/RegExpObject.cpp
-@@ -162,17 +162,16 @@ MatchPairs::checkAgainst(size_t inputLen
+@@ -163,17 +163,16 @@ MatchPairs::checkAgainst(size_t inputLen
continue;
JS_ASSERT(size_t(p.limit) <= inputLength);
}
@@ -109,7 +126,7 @@
JS_NOT_REACHED("Called reportYarrError with value for no error");
return;
#define COMPILE_EMSG(__code, __msg) \
-@@ -194,52 +193,16 @@ RegExpCode::reportYarrError(JSContext *c
+@@ -195,73 +194,36 @@ RegExpCode::reportYarrError(JSContext *c
COMPILE_EMSG(QuantifierTooLarge, JSMSG_BAD_QUANTIFIER);
COMPILE_EMSG(EscapeUnterminated, JSMSG_TRAILING_SLASH);
#undef COMPILE_EMSG
@@ -157,16 +174,100 @@
bool
RegExpCode::compile(JSContext *cx, JSLinearString &pattern, unsigned *parenCount, RegExpFlag flags)
{
- #if ENABLE_YARR_JIT
+-#if ENABLE_YARR_JIT
/* Parse the pattern. */
ErrorCode yarrError;
YarrPattern yarrPattern(pattern, bool(flags & IgnoreCaseFlag), bool(flags & MultilineFlag),
&yarrError);
+ if (yarrError) {
+ reportYarrError(cx, NULL, yarrError);
+ return false;
+ }
+ *parenCount = yarrPattern.m_numSubpatterns;
+
+ /*
+ * The YARR JIT compiler attempts to compile the parsed pattern. If
+ * it cannot, it informs us via |codeBlock.isFallBack()|, in which
+ * case we have to bytecode compile it.
+ */
+
+-#ifdef JS_METHODJIT
++#if ENABLE_YARR_JIT && defined(JS_METHODJIT)
+ if (isJITRuntimeEnabled(cx) && !yarrPattern.m_containsBackreferences) {
+ JSC::ExecutableAllocator *execAlloc = cx->runtime->getExecutableAllocator(cx);
+ if (!execAlloc) {
+ js_ReportOutOfMemory(cx);
+ return false;
+ }
+
+ JSGlobalData globalData(execAlloc);
+@@ -272,58 +234,41 @@ RegExpCode::compile(JSContext *cx, JSLin
+ #endif
+
+ WTF::BumpPointerAllocator *bumpAlloc = cx->runtime->getBumpPointerAllocator(cx);
+ if (!bumpAlloc) {
+ js_ReportOutOfMemory(cx);
+ return false;
+ }
+
++#if ENABLE_YARR_JIT
+ codeBlock.setFallBack(true);
++#endif
+ byteCode = byteCompile(yarrPattern, bumpAlloc).get();
+ return true;
+-#else /* !defined(ENABLE_YARR_JIT) */
+- int error = 0;
+- compiled = jsRegExpCompile(pattern.chars(), pattern.length(),
+- ignoreCase() ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase,
+- multiline() ? JSRegExpMultiline : JSRegExpSingleLine,
+- parenCount, &error);
+- if (error) {
+- reportPCREError(cx, error);
+- return false;
+- }
+- return true;
+-#endif
+ }
+
+ RegExpRunStatus
+ RegExpCode::execute(JSContext *cx, const jschar *chars, size_t length, size_t start,
+ int *output, size_t outputCount)
+ {
+ int result;
+ #if ENABLE_YARR_JIT
+ (void) cx; /* Unused. */
+ if (codeBlock.isFallBack())
+ result = JSC::Yarr::interpret(byteCode, chars, start, length, output);
+ else
+ result = JSC::Yarr::execute(codeBlock, chars, start, length, output);
+ #else
+- result = jsRegExpExecute(cx, compiled, chars, length, start, output, outputCount);
++ result = JSC::Yarr::interpret(byteCode, chars, start, length, output);
+ #endif
+
+ if (result == -1)
+ return RegExpRunStatus_Success_NotFound;
+
+-#if !ENABLE_YARR_JIT
+- if (result < 0) {
+- reportPCREError(cx, result);
+- return RegExpRunStatus_Error;
+- }
+-#endif
+-
+ JS_ASSERT(result >= 0);
+ return RegExpRunStatus_Success;
+ }
+
+ /* RegExpObject */
+
+ static void
+ regexp_trace(JSTracer *trc, JSObject *obj)
diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h
--- a/js/src/vm/RegExpObject.h
+++ b/js/src/vm/RegExpObject.h
-@@ -46,20 +46,18 @@
- #include
+@@ -47,20 +47,18 @@
+ #include "jscntxt.h"
#include "jsobj.h"
#include "js/TemplateLib.h"
@@ -187,6 +288,91 @@
*
* RegExpObject - The JS-visible object whose .[[Class]] equals "RegExp"
*
+@@ -108,78 +106,61 @@ class RegExpObjectBuilder
+
+ JSObject *
+ CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *proto);
+
+ namespace detail {
+
+ class RegExpCode
+ {
+-#if ENABLE_YARR_JIT
+ typedef JSC::Yarr::BytecodePattern BytecodePattern;
+ typedef JSC::Yarr::ErrorCode ErrorCode;
++ typedef JSC::Yarr::YarrPattern YarrPattern;
++#if ENABLE_YARR_JIT
+ typedef JSC::Yarr::JSGlobalData JSGlobalData;
+ typedef JSC::Yarr::YarrCodeBlock YarrCodeBlock;
+- typedef JSC::Yarr::YarrPattern YarrPattern;
+
+ /* Note: Native code is valid only if |codeBlock.isFallBack() == false|. */
+ YarrCodeBlock codeBlock;
++#endif
+ BytecodePattern *byteCode;
+-#else
+- JSRegExp *compiled;
+-#endif
+
+ public:
+ RegExpCode()
+ :
+ #if ENABLE_YARR_JIT
+ codeBlock(),
++#endif
+ byteCode(NULL)
+-#else
+- compiled(NULL)
+-#endif
+ { }
+
+ ~RegExpCode() {
+ #if ENABLE_YARR_JIT
+ codeBlock.release();
++#endif
+ if (byteCode)
+ Foreground::delete_<BytecodePattern>(byteCode);
+-#else
+- if (compiled)
+- jsRegExpFree(compiled);
+-#endif
+ }
+
+ static bool checkSyntax(JSContext *cx, TokenStream *tokenStream, JSLinearString *source) {
+-#if ENABLE_YARR_JIT
+ ErrorCode error = JSC::Yarr::checkSyntax(*source);
+ if (error == JSC::Yarr::NoError)
+ return true;
+
+ reportYarrError(cx, tokenStream, error);
+ return false;
+-#else
+-# error "Syntax checking not implemented for !ENABLE_YARR_JIT"
+-#endif
+ }
+
+ #if ENABLE_YARR_JIT
+ static inline bool isJITRuntimeEnabled(JSContext *cx);
++#endif
+ static void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error);
+-#else
+- static void reportPCREError(JSContext *cx, int error);
+-#endif
+
+ static size_t getOutputSize(size_t pairCount) {
+-#if ENABLE_YARR_JIT
+ return pairCount * 2;
+-#else
+- return pairCount * 3; /* Should be x2, but PCRE has... needs. */
+-#endif
+ }
+
+ bool compile(JSContext *cx, JSLinearString &pattern, unsigned *parenCount, RegExpFlag flags);
+
+
+ RegExpRunStatus
+ execute(JSContext *cx, const jschar *chars, size_t length, size_t start,
+ int *output, size_t outputCount);
diff --git a/js/src/yarr/wtfbridge.h b/js/src/yarr/wtfbridge.h
--- a/js/src/yarr/wtfbridge.h
+++ b/js/src/yarr/wtfbridge.h
++++++ source-stamp.txt ++++++
--- /var/tmp/diff_new_pack.5puy4F/_old 2012-07-31 14:23:27.000000000 +0200
+++ /var/tmp/diff_new_pack.5puy4F/_new 2012-07-31 14:23:27.000000000 +0200
@@ -1,2 +1,2 @@
-REV=2b643ea8edf9
+REV=e5728a4e106c
REPO=http://hg.mozilla.org/releases/mozilla-release
++++++ xulrunner-13.0.1-source.tar.bz2 -> xulrunner-14.0.1-source.tar.bz2 ++++++
/work/SRC/openSUSE:12.2/xulrunner/xulrunner-13.0.1-source.tar.bz2 /work/SRC/openSUSE:12.2/.xulrunner.new/xulrunner-14.0.1-source.tar.bz2 differ: char 11, line 1
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org