head	1.2;
access;
symbols
	old_RELEASE_8_0_0:1.1
	old_RELEASE_7_2_0:1.1;
locks; strict;
comment	@# @;


1.2
date	2010.02.07.21.48.44;	author beat;	state dead;
branches;
next	1.1;

1.1
date	2009.03.29.16.00.48;	author marcus;	state Exp;
branches;
next	;


desc
@@


1.2
log
@- Update to 3.6

What's new in Firefox 3.6:

  * Support for the HTML5 File API
  * A change to how third-party software integrates with Firefox to
    increase stability.
  * The ability to run scripts asynchronously to speed up page load times.
  * A mechanism to prevent incompatible software from crashing Firefox.
  * Users can now change their browser's appearance with a single click,
    with built in support for Personas.
  * Firefox 3.6 will alert users about out of date plugins to keep them
    safe.
  * Open, native video can now be displayed full screen, and supports
    poster frames.
  * Support for the WOFF font format.
  * Improved JavaScript performance, overall browser responsiveness and
    startup time.
  * Support for new CSS, DOM and HTML5 web technologies.

Thanks to:	Andreas Tobler, Florian Smeets, nox@@, miwi@@ and all testers
@
text
@Bug 485286 - Allocate all of these consistently. r+sr=peterv/sicking a=ss

diff --git a/extensions/transformiix/source/xslt/functions/txKeyFunctionCall.cpp b/extensions/transformiix/source/xslt/functions/txKeyFunctionCall.cpp
--- extensions/transformiix/source/xslt/functions/txKeyFunctionCall.cpp
+++ extensions/transformiix/source/xslt/functions/txKeyFunctionCall.cpp
@@@@ -401,26 +401,30 @@@@ nsresult txXSLKey::testNode(const txXPat
                             txExecutionState& aEs)
 {
     nsAutoString val;
     txListIterator iter(&mKeys);
     while (iter.hasNext())
     {
         Key* key = (Key*)iter.next();
         if (key->matchPattern->matches(aNode, &aEs)) {
-            txSingleNodeContext evalContext(aNode, &aEs);
-            nsresult rv = aEs.pushEvalContext(&evalContext);
+            txSingleNodeContext *evalContext =
+                new txSingleNodeContext(aNode, &aEs);
+            NS_ENSURE_TRUE(evalContext, NS_ERROR_OUT_OF_MEMORY);
+
+            nsresult rv = aEs.pushEvalContext(evalContext);
             NS_ENSURE_SUCCESS(rv, rv);
 
             nsRefPtr<txAExprResult> exprResult;
-            rv = key->useExpr->evaluate(&evalContext,
+            rv = key->useExpr->evaluate(evalContext,
                                         getter_AddRefs(exprResult));
-            aEs.popEvalContext();
             NS_ENSURE_SUCCESS(rv, rv);
 
+            delete aEs.popEvalContext();
+
             if (exprResult->getResultType() == txAExprResult::NODESET) {
                 txNodeSet* res = NS_STATIC_CAST(txNodeSet*,
                                                 NS_STATIC_CAST(txAExprResult*,
                                                                exprResult));
                 PRInt32 i;
                 for (i = 0; i < res->size(); ++i) {
                     val.Truncate();
                     txXPathNodeUtils::appendNodeValue(res->get(i), val);
@


1.1
log
@Merge patches from Firefox Bugzilla to fix CVE-2009-1169.
@
text
@@

