rpms/xulrunner/F-9 xulrunner-hang.patch, NONE, 1.1 xulrunner.spec, 1.115, 1.116

Martin Stransky (stransky) fedora-extras-commits at redhat.com
Wed Apr 23 08:34:27 UTC 2008


Author: stransky

Update of /cvs/pkgs/rpms/xulrunner/F-9
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21252

Modified Files:
	xulrunner.spec 
Added Files:
	xulrunner-hang.patch 
Log Message:
- Added fix for #443725 - Critical hanging bug with fix 
  available upstream (mozbz#429903)



xulrunner-hang.patch:

--- NEW FILE xulrunner-hang.patch ---
diff -NprU8 mozilla.eded8fd350ce/dom/src/base/nsDOMClassInfo.cpp mozilla/dom/src/base/nsDOMClassInfo.cpp
--- mozilla.eded8fd350ce/dom/src/base/nsDOMClassInfo.cpp	2008-04-22 16:58:15.000000000 -0700
+++ mozilla/dom/src/base/nsDOMClassInfo.cpp	2008-04-22 16:58:15.000000000 -0700
@@ -8933,17 +8933,17 @@ nsHTMLPluginObjElementSH::SetupProtoChai
   // Set 'this.__proto__' to pi
   if (!::JS_SetPrototype(cx, obj, pi_obj)) {
     return NS_ERROR_UNEXPECTED;
   }
 
   if (pi_proto && JS_GET_CLASS(cx, pi_proto) != sObjectClass) {
     // The plugin wrapper has a proto that's not Object.prototype, set
     // 'pi.__proto__.__proto__' to the original 'this.__proto__'
-    if (!::JS_SetPrototype(cx, pi_proto, my_proto)) {
+    if (pi_proto != my_proto && !::JS_SetPrototype(cx, pi_proto, my_proto)) {
       return NS_ERROR_UNEXPECTED;
     }
   } else {
     // 'pi' didn't have a prototype, or pi's proto was 'Object.prototype'
     // (i.e. pi is an LiveConnect wrapped Java applet), set
     // 'pi.__proto__' to the original 'this.__proto__'
     if (!::JS_SetPrototype(cx, pi_obj, my_proto)) {
       return NS_ERROR_UNEXPECTED;
diff -NprU8 mozilla.eded8fd350ce/js/src/jsapi.c mozilla/js/src/jsapi.c
--- mozilla.eded8fd350ce/js/src/jsapi.c	2008-04-22 16:58:15.000000000 -0700
+++ mozilla/js/src/jsapi.c	2008-04-22 16:58:15.000000000 -0700
@@ -2908,16 +2908,17 @@ JS_GetPrototype(JSContext *cx, JSObject 
     /* Beware ref to dead object (we may be called from obj's finalizer). */
     return proto && proto->map ? proto : NULL;
 }
 
 JS_PUBLIC_API(JSBool)
 JS_SetPrototype(JSContext *cx, JSObject *obj, JSObject *proto)
 {
     CHECK_REQUEST(cx);
+    JS_ASSERT(obj != proto);
 #ifdef DEBUG
     /*
      * FIXME: bug 408416. The cycle-detection required for script-writeable
      * __proto__ lives in js_SetProtoOrParent over in jsobj.c, also known as
      * js_ObjectOps.setProto. This hook must detect cycles, to prevent scripts
      * from ilooping SpiderMonkey trivially. But the overhead of detecting
      * cycles is high enough, and the threat from JS-API-calling C++ code is
      * low enough, that it's not worth burdening the non-DEBUG callers. Same


Index: xulrunner.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xulrunner/F-9/xulrunner.spec,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -r1.115 -r1.116
--- xulrunner.spec	23 Apr 2008 08:27:58 -0000	1.115
+++ xulrunner.spec	23 Apr 2008 08:33:50 -0000	1.116
@@ -31,6 +31,7 @@
 Patch20:        mozilla-dpi.patch
 Patch21:        mozilla-wtfbuttons.patch
 Patch22:        mozilla-keys.patch
+Patch23:        xulrunner-hang.patch
 
 
 # ---------------------------------------------------
@@ -101,6 +102,7 @@
 %patch20 -p1 -b .dpi
 %patch21 -p1 -b .wtfbuttons
 %patch22 -p1 -b .keys
+%patch23 -p1 -b .hang
 
 %{__rm} -f .mozconfig
 %{__cp} %{SOURCE10} .mozconfig
@@ -388,6 +390,8 @@
 * Wed Apr 23 2008 Martin Stransky <stransky at redhat.com> 1.9-0.56
 - Changed "__ppc64__" to "__powerpc64__", 
   "__ppc64__" doesn't work anymore
+- Added fix for #443725 - Critical hanging bug with fix 
+  available upstream (mozbz#429903)
 
 * Fri Apr 18 2008 Martin Stransky <stransky at redhat.com> 1.9-0.55
 - Fixed multilib issues, added starting script instead of a symlink




More information about the fedora-extras-commits mailing list