Backed out changeset a0bc16b5a428 (bug 897676) for causing mochitest failures on a CLOSED TREE
authorWes Kocher <wkocher@mozilla.com>
Mon, 29 Jul 2013 18:27:04 -0700
changeset 152770 dcb2b42761857b2fd54c827d189dccfad99b8628
parent 152769 5d56f5be9d3fbd3773e43f5dc42e03ef70b73679
child 152771 130edeb784f47783c3f05f9fea51e8bc24c090b5
push id2859
push userakeybl@mozilla.com
push dateMon, 16 Sep 2013 19:14:59 +0000
treeherdermozilla-beta@87d3c51cd2bf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs897676
milestone25.0a1
backs outa0bc16b5a4289ac84df94328078d6531b786ee1c
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset a0bc16b5a428 (bug 897676) for causing mochitest failures on a CLOSED TREE
js/xpconnect/src/XPCWrappedNative.cpp
--- a/js/xpconnect/src/XPCWrappedNative.cpp
+++ b/js/xpconnect/src/XPCWrappedNative.cpp
@@ -355,23 +355,17 @@ XPCWrappedNative::WrapNewGlobal(xpcObjec
     // This is probably more trouble than it's worth, since we've already created
     // an XPCNativeScriptableInfo for ourselves. Moreover, most of that class is
     // shared internally via XPCNativeScriptableInfoShared, so the memory
     // savings are negligible. Nevertheless, this is what ::Init() does, and we
     // want to be as consistent as possible with that code.
     XPCNativeScriptableInfo* siProto = proto->GetScriptableInfo();
     if (siProto && siProto->GetCallback() == sciWrapper.GetCallback()) {
         wrapper->mScriptableInfo = siProto;
-        // XPCNativeScriptableShared instances live in a map, and are
-        // GCed, but XPCNativeScriptableInfo is per-instance and must be
-        // manually managed. If we're switching over to that of the proto, we
-        // need to destroy the one we've allocated, and also null out the
-        // AutoMarkingPtr, so that it doesn't try to mark garbage data.
         delete si;
-        si = nullptr;
     } else {
         wrapper->mScriptableInfo = si;
     }
 
     // Set the JS object to the global we already created.
     wrapper->mFlatJSObject = global;
     wrapper->mFlatJSObject.setFlags(FLAT_JS_OBJECT_VALID);