Closed Bug 645398 Opened 14 years ago Closed 13 years ago

Code cleanup, substitute PR_(MAX|MIN|ABS|ROUNDUP) macro calls

Categories

(Firefox :: General, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 7

People

(Reporter: LoN_Kamikaze, Assigned: LoN_Kamikaze)

References

Details

Attachments

(1 file, 1 obsolete file)

User-Agent:       Mozilla/5.0 (X11; FreeBSD amd64; rv:2.0) Gecko/20100101 Firefox/4.0
Build Identifier: Mozilla/5.0 (X11; FreeBSD amd64; rv:2.0) Gecko/20100101 Firefox/4.0

See bug 603880, comment 7.

- Removes PR_(MAX|MIN|ABS|ROUNDUP) macro calls from all C++ code
- Adds NS_ABS and NS_ROUNDUP inline functions to nsAlgorithm.h
- Replace macro calls with NS_* inline calls

It appears that on FreeBSD (which uses gcc42, due to licensing issues with recent gcc versions), the macro calls trigger compiler bugs that cause wrong results in some cases.

Reproducible: Always
This was a whole day of work, more than 300 calls were substituted, because inline functions are templates, type restrictions had to be met and nsAlgorithm.h includes had to be place manually.

I really hope this gets used.
roc, is this something you'd look at?
Yes, this is quite awesome.

You've got (PRUint32)0 and (PRUint32)0xFF which can be better written as 0U or 0xFFU. We usually use U instead of u, you can change the us to Us in your patch if you want but it probably doesn't matter. (I Strongly prefer L over l since 'l' looks like the digit '1'.) And a couple of (PRInt64)0 which can be written 0LL. (PRInt64)1 should be 1LL.

+template <class T>
+inline
+const T&
+NS_ROUNDUP( const T& a, const T& b )
+  {
+    return ((a + (b - 1)) / b) * b;
+  }

I think this should just return a T, since you're returning a new value here.

I think NS_MAX/NS_MIN should be changed to return T too. It doesn't seem right to return a reference to a parameter that might be a temporary object. Right cjones?

+template <class T>
+inline
+const T&
+NS_ABS( const T& a )
+  {
+    return a < 0 ? -a : a;
+  }

So I'd make this return T as well.

Other than that, this looks good. I'll do a tryserver run.
One thing occurs to me: instead of explicitly casting one of the parameters to match the other to fix a type mismatch, it's probably safer to just give an explicit template argument, e.g.
  foo = NS_MAX<double>(a, b);

That ensures we don't add unsafe casts.
(In reply to comment #8)
> One thing occurs to me: instead of explicitly casting one of the parameters to
> match the other to fix a type mismatch, it's probably safer to just give an
> explicit template argument, e.g.
>   foo = NS_MAX<double>(a, b);
> 
> That ensures we don't add unsafe casts.

I like that one. I'm more of a C person and not that comfortable with templates.

Do you want me to make all the suggested changes and update the patch or will you incorporate them yourself?
> I think NS_MAX/NS_MIN should be changed to return T too. It doesn't seem right
to return a reference to a parameter that might be a temporary object.
Then why STL min/max return |const T&|?
http://support.microsoft.com/kb/143208
(In reply to comment #9)
> I like that one. I'm more of a C person and not that comfortable with
> templates.
> 
> Do you want me to make all the suggested changes and update the patch or will
> you incorporate them yourself?

I'd be thrilled if you did it, but if you don't want to do it, let me know and I'll do it myself.

(In reply to comment #10)
> Then why STL min/max return |const T&|?
> http://support.microsoft.com/kb/143208

Yeah I'm actually wrong. The temporary object constructed for any parameter(s) will live past to end of the caller's block. That's fine for min/max, where the reference is always to an object that lives in the caller, but NS_ABS and NS_ROUNDUP should still return a "T" I think, since they return values that might not be live in the caller.
(In reply to comment #11)
> (In reply to comment #9)
> > I like that one. I'm more of a C person and not that comfortable with
> > templates.
> > 
> > Do you want me to make all the suggested changes and update the patch or will
> > you incorporate them yourself?
> 
> I'd be thrilled if you did it, but if you don't want to do it, let me know and
> I'll do it myself.

I'm willing to. I'm just starting to get some doubts about forcing double. I think these things are called quite frequently and I wonder about the performance implications of forcing float where not necessary.

I've taken great care to always use the more encompassing type (e.g. l > u), in case where neither type could encompass the other (e.g. ul and l neither can represent all values of the other), I read the code to understand which cases could happen.

While <double> is safer I wonder whether it's slower. Is the compiler able to optimize all these casts away?
Forgot to post:

Also there are different long values that are represented by the same double value, because it cannot represent these values with the same precision (it needs additional bits for the exponent after all). I.e. casting to double can lead to erroneous results.
(In reply to comment #12)
> I'm willing to. I'm just starting to get some doubts about forcing double. I
> think these things are called quite frequently and I wonder about the
> performance implications of forcing float where not necessary.

Don't force double everywhere, just force the right type at each call site (i.e. the type your current patch inserts a cast to).
Attached patch Revised PatchSplinter Review
- Remove 2 FreeBSD specific chunks I overlooked before
- Cast NS_*<type>(a,b) instead of NS_*(a, (type)b)
- NS_ABS() and NS_ROUNDUP() return by value instead of reference
- Tested with Firefox 4.0 sources on FreeBSD 8.2-stable/amd64
I wouldn't bother with the comment in

#include "nsAlgorithm.h"	/* for PR_* */

but if you do, that should say "NS_".

Thanks for your patch!
Assignee: nobody → LoN_Kamikaze
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
OS: FreeBSD → All
Hardware: x86_64 → All
(In reply to comment #16)
> I wouldn't bother with the comment in
> 
> #include "nsAlgorithm.h"    /* for PR_* */
> 
> but if you do, that should say "NS_".

Right. I hope the includes would be checked by the people including the patch any way.

I think it should be pushed in soon or the code will divert too much, so I won't change anything until I get confirmation that my work will avail to something.
Dominic - nice work on the patch!

Before it can be pushed you need to request review (the lack of r? ie: review request is why the patch has sat here) - and then once you get an r+ (ie review accepted) you can set the checkin-needed keyword - so that someone with commit level 3 will push to mozilla-central. 

If you are already aware of this, then ignore - just didn't want your hard work to go to waste/bitrotting, if you didn't know. The following may also be useful to you:
https://developer.mozilla.org/En/Developer_Guide/How_to_Submit_a_Patch

Also, before you request review/checkin-needed, see this page:
http://blog.bonardo.net/2010/06/22/so-youre-about-to-use-checkin-needed
...since your patch is not quite in the correct format (8 lines context etc) and having the user/commit message filled out saves people doing checkin-needed a bit of time. At the same time as doing that, might be a good opportunity to make the update suggested in comment 16.

Anyway, hope that helped :-)
Attachment #522144 - Attachment is obsolete: true
(In reply to comment #17)
> I think it should be pushed in soon or the code will divert too much, so I
> won't change anything until I get confirmation that my work will avail to
> something.

I'm not sure what kind of confirmation you want. I was waiting for you to re-request review. I'll just go ahead and review it now anyway.
Comment on attachment 522652 [details] [diff] [review]
Revised Patch

Review of attachment 522652 [details] [diff] [review]:

r+ with those changes. Thanks!

This will need a tryserver run before it can land. My tree's a bit of a mess right now, or I'd do it.

::: ../mozilla-2.0.orig/xpcom/string/public/nsAlgorithm.h
@@ +56,5 @@
 
+
+template <class T>
+inline
+const T

Don't need 'const' here.

@@ +80,5 @@
   }
 
+template <class T>
+inline
+const T

Don't need 'const' here.
Attachment #522652 - Flags: review+
Thanks for all the helpful comments. The way I see it, I was asked to supply this and I didn't familiarize myself with the formalities. Obviously they're quite different from the FreeBSD project, where I feel at home.
I tried to push this to the try server, but it doesn't apply cleanly any more:

applying attachment.cgi?id=522652
unable to find 'canvas/src/WebGLContext.h' for patching
3 out of 3 hunks FAILED -- saving rejects to file canvas/src/WebGLContext.h.rej
unable to find 'canvas/src/WebGLContextGL.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file canvas/src/WebGLContextGL.cpp.rej
unable to find 'canvas/src/WebGLContextValidate.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file canvas/src/WebGLContextValidate.cpp.rej
unable to find 'events/src/nsEventStateManager.cpp' for patching
4 out of 4 hunks FAILED -- saving rejects to file events/src/nsEventStateManager.cpp.rej
unable to find 'media/nsBuiltinDecoderReader.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file media/nsBuiltinDecoderReader.cpp.rej
unable to find 'media/nsMediaCache.cpp' for patching
17 out of 17 hunks FAILED -- saving rejects to file media/nsMediaCache.cpp.rej
unable to find 'media/nsMediaStream.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file media/nsMediaStream.cpp.rej
unable to find 'media/wave/nsWaveDecoder.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file media/wave/nsWaveDecoder.cpp.rej
unable to find 'smil/nsSMILAnimationController.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file smil/nsSMILAnimationController.cpp.rej
unable to find 'smil/nsSMILTimeContainer.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file smil/nsSMILTimeContainer.cpp.rej
unable to find 'xslt/src/base/txDouble.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xslt/src/base/txDouble.cpp.rej
unable to find 'xslt/src/base/txStringUtils.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xslt/src/base/txStringUtils.cpp.rej
unable to find 'xslt/src/xpath/txMozillaXPathTreeWalker.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xslt/src/xpath/txMozillaXPathTreeWalker.cpp.rej
unable to find 'xslt/src/xpath/txNodeSet.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xslt/src/xpath/txNodeSet.cpp.rej
unable to find 'xslt/src/xslt/txMozillaXMLOutput.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xslt/src/xslt/txMozillaXMLOutput.cpp.rej
unable to find 'xul/content/src/nsXULElement.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xul/content/src/nsXULElement.cpp.rej
unable to find 'morkreader/nsMorkReader.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file morkreader/nsMorkReader.cpp.rej
unable to find 'shistory/src/nsSHistory.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file shistory/src/nsSHistory.cpp.rej
unable to find 'indexedDB/IDBFactory.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file indexedDB/IDBFactory.cpp.rej
unable to find 'ipc/TabParent.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file ipc/TabParent.cpp.rej
unable to find 'system/nsAccelerometer.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file system/nsAccelerometer.cpp.rej
unable to find 'libeditor/html/nsHTMLEditRules.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libeditor/html/nsHTMLEditRules.cpp.rej
unable to find 'libeditor/html/nsHTMLObjectResizer.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libeditor/html/nsHTMLObjectResizer.cpp.rej
unable to find 'gnomevfs/nsGnomeVFSProtocolHandler.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file gnomevfs/nsGnomeVFSProtocolHandler.cpp.rej
unable to find 'pref/autoconfig/src/nsAutoConfig.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file pref/autoconfig/src/nsAutoConfig.cpp.rej
unable to find 'src/nsCoord.h' for patching
4 out of 4 hunks FAILED -- saving rejects to file src/nsCoord.h.rej
unable to find 'src/nsIRenderingContext.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/nsIRenderingContext.h.rej
unable to find 'src/nsRect.cpp' for patching
8 out of 8 hunks FAILED -- saving rejects to file src/nsRect.cpp.rej
unable to find 'src/thebes/nsThebesDeviceContext.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file src/thebes/nsThebesDeviceContext.cpp.rej
unable to find 'src/thebes/nsThebesFontMetrics.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/thebes/nsThebesFontMetrics.cpp.rej
unable to find 'src/thebes/nsThebesRenderingContext.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/thebes/nsThebesRenderingContext.cpp.rej
unable to find 'thebes/gfxBlur.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file thebes/gfxBlur.cpp.rej
unable to find 'thebes/gfxContext.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxContext.cpp.rej
unable to find 'thebes/gfxCoreTextShaper.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file thebes/gfxCoreTextShaper.cpp.rej
unable to find 'thebes/gfxDWriteFontList.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxDWriteFontList.h.rej
unable to find 'thebes/gfxFT2Utils.cpp' for patching
6 out of 6 hunks FAILED -- saving rejects to file thebes/gfxFT2Utils.cpp.rej
unable to find 'thebes/gfxFont.cpp' for patching
15 out of 15 hunks FAILED -- saving rejects to file thebes/gfxFont.cpp.rej
unable to find 'thebes/gfxFont.h' for patching
2 out of 2 hunks FAILED -- saving rejects to file thebes/gfxFont.h.rej
unable to find 'thebes/gfxFontUtils.h' for patching
4 out of 4 hunks FAILED -- saving rejects to file thebes/gfxFontUtils.h.rej
unable to find 'thebes/gfxGDIFont.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxGDIFont.cpp.rej
unable to find 'thebes/gfxGDIFontList.cpp' for patching
5 out of 5 hunks FAILED -- saving rejects to file thebes/gfxGDIFontList.cpp.rej
unable to find 'thebes/gfxHarfBuzzShaper.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file thebes/gfxHarfBuzzShaper.cpp.rej
unable to find 'thebes/gfxImageSurface.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxImageSurface.cpp.rej
unable to find 'thebes/gfxMacFont.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxMacFont.cpp.rej
unable to find 'thebes/gfxOS2Fonts.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file thebes/gfxOS2Fonts.cpp.rej
unable to find 'thebes/gfxRect.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file thebes/gfxRect.cpp.rej
unable to find 'thebes/gfxRect.h' for patching
3 out of 3 hunks FAILED -- saving rejects to file thebes/gfxRect.h.rej
unable to find 'thebes/gfxSkipChars.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file thebes/gfxSkipChars.cpp.rej
unable to find 'uconv/src/nsConverterInputStream.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file uconv/src/nsConverterInputStream.cpp.rej
unable to find 'uconv/src/nsUTF8ToUnicode.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file uconv/src/nsUTF8ToUnicode.cpp.rej
unable to find 'uconv/util/nsUCSupport.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file uconv/util/nsUCSupport.cpp.rej
unable to find 'src/xpconnect/src/xpcjsruntime.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/xpconnect/src/xpcjsruntime.cpp.rej
unable to find 'base/nsCSSColorUtils.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file base/nsCSSColorUtils.h.rej
unable to find 'base/nsCSSRendering.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file base/nsCSSRendering.cpp.rej
unable to find 'base/nsPresShell.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file base/nsPresShell.cpp.rej
unable to find 'generic/nsGfxScrollFrame.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file generic/nsGfxScrollFrame.cpp.rej
unable to find 'generic/nsTextFrameThebes.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file generic/nsTextFrameThebes.cpp.rej
unable to find 'mathml/nsMathMLChar.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file mathml/nsMathMLChar.cpp.rej
unable to find 'style/nsStyleAnimation.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file style/nsStyleAnimation.cpp.rej
unable to find 'tables/nsTableFrame.cpp' for patching
5 out of 5 hunks FAILED -- saving rejects to file tables/nsTableFrame.cpp.rej
unable to find 'xul/base/src/tree/src/nsTreeBodyFrame.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file xul/base/src/tree/src/nsTreeBodyFrame.cpp.rej
unable to find 'libpr0n/decoders/nsBMPDecoder.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file libpr0n/decoders/nsBMPDecoder.cpp.rej
unable to find 'libpr0n/decoders/nsGIFDecoder2.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpr0n/decoders/nsGIFDecoder2.cpp.rej
unable to find 'libpr0n/decoders/nsICODecoder.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpr0n/decoders/nsICODecoder.cpp.rej
unable to find 'libpr0n/decoders/nsIconDecoder.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpr0n/decoders/nsIconDecoder.cpp.rej
unable to find 'libpr0n/decoders/nsPNGDecoder.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpr0n/decoders/nsPNGDecoder.cpp.rej
unable to find 'libpr0n/src/RasterImage.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file libpr0n/src/RasterImage.cpp.rej
unable to find 'libpr0n/src/imgRequest.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpr0n/src/imgRequest.cpp.rej
unable to find 'libpref/src/prefapi.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file libpref/src/prefapi.cpp.rej
unable to find 'base/src/nsBufferedStreams.cpp' for patching
5 out of 5 hunks FAILED -- saving rejects to file base/src/nsBufferedStreams.cpp.rej
unable to find 'base/src/nsFileStreams.h' for patching
2 out of 2 hunks FAILED -- saving rejects to file base/src/nsFileStreams.h.rej
unable to find 'base/src/nsIncrementalDownload.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file base/src/nsIncrementalDownload.cpp.rej
unable to find 'base/src/nsSocketTransport2.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file base/src/nsSocketTransport2.cpp.rej
unable to find 'base/src/nsStandardURL.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file base/src/nsStandardURL.cpp.rej
unable to find 'base/src/nsSyncStreamListener.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file base/src/nsSyncStreamListener.cpp.rej
unable to find 'cache/nsCacheService.cpp' for patching
7 out of 7 hunks FAILED -- saving rejects to file cache/nsCacheService.cpp.rej
unable to find 'cache/nsDiskCacheBlockFile.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file cache/nsDiskCacheBlockFile.cpp.rej
unable to find 'cache/nsDiskCacheMap.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file cache/nsDiskCacheMap.cpp.rej
unable to find 'cache/nsDiskCacheStreams.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file cache/nsDiskCacheStreams.cpp.rej
unable to find 'cache/nsMemoryCacheDevice.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file cache/nsMemoryCacheDevice.cpp.rej
unable to find 'protocol/about/nsAboutCacheEntry.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file protocol/about/nsAboutCacheEntry.cpp.rej
unable to find 'protocol/file/nsFileChannel.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file protocol/file/nsFileChannel.cpp.rej
unable to find 'protocol/http/HttpBaseChannel.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file protocol/http/HttpBaseChannel.cpp.rej
unable to find 'protocol/http/nsHttpChunkedDecoder.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file protocol/http/nsHttpChunkedDecoder.cpp.rej
unable to find 'protocol/http/nsHttpConnectionMgr.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file protocol/http/nsHttpConnectionMgr.cpp.rej
unable to find 'protocol/http/nsHttpResponseHead.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file protocol/http/nsHttpResponseHead.cpp.rej
unable to find 'protocol/http/nsHttpTransaction.cpp' for patching
5 out of 5 hunks FAILED -- saving rejects to file protocol/http/nsHttpTransaction.cpp.rej
unable to find 'streamconv/converters/nsBinHexDecoder.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file streamconv/converters/nsBinHexDecoder.cpp.rej
unable to find 'streamconv/converters/nsIndexedToHTML.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file streamconv/converters/nsIndexedToHTML.cpp.rej
unable to find 'streamconv/converters/nsMultiMixedConv.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file streamconv/converters/nsMultiMixedConv.cpp.rej
unable to find 'streamconv/converters/nsTXTToHTMLConv.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file streamconv/converters/nsTXTToHTMLConv.cpp.rej
unable to find 'test/TestHttp.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestHttp.cpp.rej
unable to find 'test/TestMCTransport.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestMCTransport.cpp.rej
unable to find 'test/TestOverlappedIO.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestOverlappedIO.cpp.rej
unable to find 'test/TestPageLoad.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestPageLoad.cpp.rej
unable to find 'test/TestPerf.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestPerf.cpp.rej
unable to find 'test/TestProtocols.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestProtocols.cpp.rej
unable to find 'test/TestStreamChannel.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestStreamChannel.cpp.rej
unable to find 'test/TestStreamPump.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestStreamPump.cpp.rej
unable to find 'test/TestThreadedIO.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestThreadedIO.cpp.rej
unable to find 'test/TestUpload.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file test/TestUpload.cpp.rej
unable to find 'mochitest/ssltunnel/ssltunnel.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file mochitest/ssltunnel/ssltunnel.cpp.rej
unable to find 'exthandler/nsExternalHelperAppService.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file exthandler/nsExternalHelperAppService.cpp.rej
unable to find 'src/android/nsWindow.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/android/nsWindow.cpp.rej
unable to find 'src/gtk2/nsNativeKeyBindings.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/gtk2/nsNativeKeyBindings.cpp.rej
unable to find 'src/gtk2/nsNativeThemeGTK.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/gtk2/nsNativeThemeGTK.cpp.rej
unable to find 'src/gtk2/nsPrintSettingsGTK.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/gtk2/nsPrintSettingsGTK.cpp.rej
unable to find 'src/gtk2/nsWindow.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/gtk2/nsWindow.cpp.rej
unable to find 'src/os2/nsIdleServiceOS2.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/os2/nsIdleServiceOS2.cpp.rej
unable to find 'src/qt/nsWindow.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/qt/nsWindow.cpp.rej
unable to find 'src/windows/KeyboardLayout.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/windows/KeyboardLayout.cpp.rej
unable to find 'src/windows/nsIMM32Handler.cpp' for patching
4 out of 4 hunks FAILED -- saving rejects to file src/windows/nsIMM32Handler.cpp.rej
unable to find 'src/windows/nsNativeThemeWin.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/windows/nsNativeThemeWin.cpp.rej
unable to find 'src/windows/nsTextStore.cpp' for patching
7 out of 7 hunks FAILED -- saving rejects to file src/windows/nsTextStore.cpp.rej
unable to find 'src/windows/nsWindow.cpp' for patching
6 out of 6 hunks FAILED -- saving rejects to file src/windows/nsWindow.cpp.rej
unable to find 'src/xpwidgets/nsBaseDragService.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/xpwidgets/nsBaseDragService.cpp.rej
unable to find 'src/xpwidgets/nsIdleService.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/xpwidgets/nsIdleService.cpp.rej
unable to find 'src/xpwidgets/nsNativeTheme.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/xpwidgets/nsNativeTheme.cpp.rej
unable to find 'src/xpwidgets/nsNativeTheme.h' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/xpwidgets/nsNativeTheme.h.rej
unable to find 'tests/TestWinTSF.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file tests/TestWinTSF.cpp.rej
unable to find 'ds/nsExpirationTracker.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file ds/nsExpirationTracker.h.rej
unable to find 'glue/nsQuickSort.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file glue/nsQuickSort.cpp.rej
unable to find 'glue/nsTArray-inl.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file glue/nsTArray-inl.h.rej
unable to find 'glue/nsTArray.h' for patching
1 out of 1 hunks FAILED -- saving rejects to file glue/nsTArray.h.rej
unable to find 'glue/nsVersionComparator.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file glue/nsVersionComparator.cpp.rej
unable to find 'glue/nsVoidArray.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file glue/nsVoidArray.cpp.rej
unable to find 'io/nsFastLoadFile.cpp' for patching
3 out of 3 hunks FAILED -- saving rejects to file io/nsFastLoadFile.cpp.rej
unable to find 'io/nsFastLoadFile.h' for patching
2 out of 2 hunks FAILED -- saving rejects to file io/nsFastLoadFile.h.rej
unable to find 'io/nsPipe3.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file io/nsPipe3.cpp.rej
unable to find 'io/nsScriptableInputStream.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file io/nsScriptableInputStream.cpp.rej
unable to find 'io/nsStorageStream.cpp' for patching
4 out of 4 hunks FAILED -- saving rejects to file io/nsStorageStream.cpp.rej
unable to find 'io/nsUnicharInputStream.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file io/nsUnicharInputStream.cpp.rej
unable to find 'string/public/nsAlgorithm.h' for patching
2 out of 2 hunks FAILED -- saving rejects to file string/public/nsAlgorithm.h.rej
unable to find 'string/src/nsReadableUtils.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file string/src/nsReadableUtils.cpp.rej
unable to find 'string/src/nsTSubstring.cpp' for patching
4 out of 4 hunks FAILED -- saving rejects to file string/src/nsTSubstring.cpp.rej
unable to find 'tests/TestPipes.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file tests/TestPipes.cpp.rej
unable to find 'appshell/src/nsXULWindow.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file appshell/src/nsXULWindow.cpp.rej
unable to find 'src/CertReader.cpp' for patching
1 out of 1 hunks FAILED -- saving rejects to file src/CertReader.cpp.rej
unable to find 'src/nsXPInstallManager.cpp' for patching
2 out of 2 hunks FAILED -- saving rejects to file src/nsXPInstallManager.cpp.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh attachment.cgi?id=522652
You need to use patch with -p0.
Heh, right, but even doing that doesn't make the patch apply cleanly:

patching file content/canvas/src/WebGLContext.h
Hunk #1 succeeded at 913 (offset -1 lines).
Hunk #2 succeeded at 937 (offset -1 lines).
Hunk #3 succeeded at 1049 (offset -1 lines).
patching file content/canvas/src/WebGLContextGL.cpp
patching file content/canvas/src/WebGLContextValidate.cpp
patching file content/events/src/nsEventStateManager.cpp
Hunk #1 succeeded at 753 (offset -3 lines).
Hunk #2 succeeded at 1295 (offset -2 lines).
Hunk #3 succeeded at 1310 (offset -2 lines).
Hunk #4 succeeded at 2007 (offset -10 lines).
patching file content/media/nsBuiltinDecoderReader.cpp
Hunk #1 succeeded at 259 (offset -79 lines).
patching file content/media/nsMediaCache.cpp
Hunk #1 FAILED at 750.
Hunk #2 succeeded at 818 with fuzz 2 (offset -9 lines).
Hunk #3 succeeded at 1046 (offset -9 lines).
Hunk #4 succeeded at 1074 (offset -9 lines).
Hunk #5 succeeded at 1124 (offset -9 lines).
Hunk #6 succeeded at 1649 (offset -9 lines).
Hunk #7 succeeded at 1669 (offset -9 lines).
Hunk #8 succeeded at 1713 (offset -9 lines).
Hunk #9 succeeded at 1768 (offset -9 lines).
Hunk #10 succeeded at 1809 (offset -9 lines).
Hunk #11 succeeded at 1975 (offset -9 lines).
Hunk #12 succeeded at 2106 (offset -9 lines).
Hunk #13 succeeded at 2115 (offset -9 lines).
Hunk #14 succeeded at 2125 (offset -9 lines).
Hunk #15 succeeded at 2192 (offset -9 lines).
Hunk #16 succeeded at 2200 (offset -9 lines).
Hunk #17 succeeded at 2210 (offset -9 lines).
1 out of 17 hunks FAILED -- saving rejects to file content/media/nsMediaCache.cpp.rej
patching file content/media/nsMediaStream.cpp
Hunk #1 succeeded at 938 (offset 15 lines).
patching file content/media/wave/nsWaveDecoder.cpp
Hunk #1 FAILED at 645.
Hunk #2 FAILED at 1072.
Hunk #3 FAILED at 1211.
3 out of 3 hunks FAILED -- saving rejects to file content/media/wave/nsWaveDecoder.cpp.rej
patching file content/smil/nsSMILAnimationController.cpp
Hunk #1 succeeded at 577 (offset -8 lines).
Hunk #2 succeeded at 594 (offset -8 lines).
patching file content/smil/nsSMILTimeContainer.cpp
patching file content/xslt/src/base/txDouble.cpp
patching file content/xslt/src/base/txStringUtils.cpp
patching file content/xslt/src/xpath/txMozillaXPathTreeWalker.cpp
Hunk #1 succeeded at 719 (offset 2 lines).
patching file content/xslt/src/xpath/txNodeSet.cpp
patching file content/xslt/src/xslt/txMozillaXMLOutput.cpp
Hunk #1 succeeded at 685 (offset -6 lines).
patching file content/xul/content/src/nsXULElement.cpp
patching file db/morkreader/nsMorkReader.cpp
patching file docshell/shistory/src/nsSHistory.cpp
Hunk #1 succeeded at 1003 (offset -7 lines).
Hunk #2 succeeded at 1213 (offset -7 lines).
patching file dom/indexedDB/IDBFactory.cpp
Hunk #1 succeeded at 624 (offset 7 lines).
Hunk #2 succeeded at 980 (offset 43 lines).
patching file dom/ipc/TabParent.cpp
patching file dom/system/nsAccelerometer.cpp
Hunk #1 FAILED at 232.
1 out of 1 hunk FAILED -- saving rejects to file dom/system/nsAccelerometer.cpp.rej
patching file editor/libeditor/html/nsHTMLEditRules.cpp
patching file editor/libeditor/html/nsHTMLObjectResizer.cpp
Hunk #1 succeeded at 928 (offset 1 line).
patching file extensions/gnomevfs/nsGnomeVFSProtocolHandler.cpp
patching file extensions/pref/autoconfig/src/nsAutoConfig.cpp
patching file gfx/src/nsCoord.h
can't find file to patch at input line 668
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur ../mozilla-2.0.orig/gfx/src/nsIRenderingContext.h gfx/src/nsIRenderingContext.h
|--- ../mozilla-2.0.orig/gfx/src/nsIRenderingContext.h	2011-03-28 22:35:21.000000000 +0200
|+++ gfx/src/nsIRenderingContext.h	2011-03-28 22:37:51.000000000 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
1 out of 1 hunk ignored
patching file gfx/src/nsRect.cpp
Hunk #1 FAILED at 81.
Hunk #2 FAILED at 93.
Hunk #3 FAILED at 138.
Hunk #4 FAILED at 169.
Hunk #5 FAILED at 178.
Hunk #6 FAILED at 268.
Hunk #7 FAILED at 280.
Hunk #8 FAILED at 317.
8 out of 8 hunks FAILED -- saving rejects to file gfx/src/nsRect.cpp.rej
can't find file to patch at input line 789
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur ../mozilla-2.0.orig/gfx/src/thebes/nsThebesDeviceContext.cpp gfx/src/thebes/nsThebesDeviceContext.cpp
|--- ../mozilla-2.0.orig/gfx/src/thebes/nsThebesDeviceContext.cpp	2011-03-28 22:35:21.000000000 +0200
|+++ gfx/src/thebes/nsThebesDeviceContext.cpp	2011-03-28 22:37:51.000000000 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 819
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur ../mozilla-2.0.orig/gfx/src/thebes/nsThebesFontMetrics.cpp gfx/src/thebes/nsThebesFontMetrics.cpp
|--- ../mozilla-2.0.orig/gfx/src/thebes/nsThebesFontMetrics.cpp	2011-03-28 22:35:21.000000000 +0200
|+++ gfx/src/thebes/nsThebesFontMetrics.cpp	2011-03-28 22:37:51.000000000 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 840
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur ../mozilla-2.0.orig/gfx/src/thebes/nsThebesRenderingContext.cpp gfx/src/thebes/nsThebesRenderingContext.cpp
|--- ../mozilla-2.0.orig/gfx/src/thebes/nsThebesRenderingContext.cpp	2011-03-28 22:35:21.000000000 +0200
|+++ gfx/src/thebes/nsThebesRenderingContext.cpp	2011-03-28 22:37:51.000000000 +0200
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
2 out of 2 hunks ignored
patching file gfx/thebes/gfxBlur.cpp
Hunk #1 succeeded at 348 (offset 2 lines).
Hunk #2 succeeded at 393 (offset 2 lines).
patching file gfx/thebes/gfxContext.cpp
Hunk #1 succeeded at 398 (offset -4 lines).
patching file gfx/thebes/gfxCoreTextShaper.cpp
patching file gfx/thebes/gfxDWriteFontList.h
patching file gfx/thebes/gfxFT2Utils.cpp
patching file gfx/thebes/gfxFont.cpp
Hunk #2 succeeded at 997 (offset -19 lines).
Hunk #3 succeeded at 1239 (offset -18 lines).
Hunk #4 succeeded at 1659 (offset -19 lines).
Hunk #5 succeeded at 1755 (offset -19 lines).
Hunk #6 succeeded at 1780 (offset -19 lines).
Hunk #7 succeeded at 1794 (offset -19 lines).
Hunk #8 succeeded at 1805 (offset -19 lines).
Hunk #9 succeeded at 2026 (offset 4 lines).
Hunk #10 succeeded at 2974 (offset 39 lines).
Hunk #11 succeeded at 3002 (offset 39 lines).
Hunk #12 succeeded at 3332 (offset 23 lines).
Hunk #13 succeeded at 3709 (offset 23 lines).
Hunk #14 succeeded at 3751 (offset 23 lines).
Hunk #15 succeeded at 4107 (offset 23 lines).
patching file gfx/thebes/gfxFont.h
Hunk #2 succeeded at 168 (offset -5 lines).
patching file gfx/thebes/gfxFontUtils.h
patching file gfx/thebes/gfxGDIFont.cpp
Hunk #1 succeeded at 374 (offset 3 lines).
patching file gfx/thebes/gfxGDIFontList.cpp
Hunk #5 succeeded at 900 (offset 1 line).
patching file gfx/thebes/gfxHarfBuzzShaper.cpp
Hunk #2 succeeded at 336 (offset 14 lines).
Hunk #3 succeeded at 1048 (offset 18 lines).
patching file gfx/thebes/gfxImageSurface.cpp
patching file gfx/thebes/gfxMacFont.cpp
patching file gfx/thebes/gfxOS2Fonts.cpp
Hunk #2 succeeded at 242 (offset 6 lines).
Hunk #3 succeeded at 269 (offset 6 lines).
patching file gfx/thebes/gfxRect.cpp
Hunk #1 FAILED at 44.
Hunk #2 FAILED at 66.
2 out of 2 hunks FAILED -- saving rejects to file gfx/thebes/gfxRect.cpp.rej
patching file gfx/thebes/gfxRect.h
Hunk #2 FAILED at 123.
Hunk #3 FAILED at 145.
2 out of 3 hunks FAILED -- saving rejects to file gfx/thebes/gfxRect.h.rej
patching file gfx/thebes/gfxSkipChars.cpp
patching file intl/uconv/src/nsConverterInputStream.cpp
patching file intl/uconv/src/nsUTF8ToUnicode.cpp
patching file intl/uconv/util/nsUCSupport.cpp
patching file js/src/xpconnect/src/xpcjsruntime.cpp
Hunk #1 FAILED at 1475.
1 out of 1 hunk FAILED -- saving rejects to file js/src/xpconnect/src/xpcjsruntime.cpp.rej
patching file layout/base/nsCSSColorUtils.h
patching file layout/base/nsCSSRendering.cpp
Hunk #1 FAILED at 1128.
Hunk #2 FAILED at 1366.
Hunk #3 succeeded at 1826 (offset -2 lines).
2 out of 3 hunks FAILED -- saving rejects to file layout/base/nsCSSRendering.cpp.rej
patching file layout/base/nsPresShell.cpp
Hunk #2 succeeded at 630 (offset 3 lines).
patching file layout/generic/nsGfxScrollFrame.cpp
Hunk #1 succeeded at 2210 (offset 157 lines).
patching file layout/generic/nsTextFrameThebes.cpp
Hunk #1 succeeded at 2755 (offset 1 line).
Hunk #2 succeeded at 2800 (offset 1 line).
Hunk #3 succeeded at 4962 (offset -17 lines).
patching file layout/mathml/nsMathMLChar.cpp
Hunk #1 succeeded at 888 (offset -86 lines).
Hunk #2 succeeded at 897 (offset -86 lines).
Hunk #3 succeeded at 924 (offset -86 lines).
patching file layout/style/nsStyleAnimation.cpp
Hunk #1 succeeded at 282 (offset 1 line).
Hunk #2 succeeded at 293 (offset 1 line).
Hunk #3 succeeded at 1073 (offset 1 line).
patching file layout/tables/nsTableFrame.cpp
Hunk #1 succeeded at 6272 (offset -2 lines).
Hunk #2 succeeded at 6611 (offset -2 lines).
Hunk #3 succeeded at 6673 (offset -2 lines).
Hunk #4 succeeded at 6815 (offset -2 lines).
Hunk #5 succeeded at 6855 (offset -2 lines).
patching file layout/xul/base/src/tree/src/nsTreeBodyFrame.cpp
Hunk #1 succeeded at 1846 (offset -13 lines).
patching file modules/libpr0n/decoders/nsBMPDecoder.cpp
patching file modules/libpr0n/decoders/nsGIFDecoder2.cpp
patching file modules/libpr0n/decoders/nsICODecoder.cpp
patching file modules/libpr0n/decoders/nsIconDecoder.cpp
patching file modules/libpr0n/decoders/nsPNGDecoder.cpp
patching file modules/libpr0n/src/RasterImage.cpp
Hunk #1 succeeded at 1915 (offset 7 lines).
Hunk #2 succeeded at 2561 (offset 7 lines).
patching file modules/libpr0n/src/imgRequest.cpp
patching file modules/libpref/src/prefapi.cpp
Hunk #1 succeeded at 479 (offset -4 lines).
patching file netwerk/base/src/nsBufferedStreams.cpp
Hunk #1 succeeded at 38 with fuzz 2 (offset -2 lines).
Hunk #2 succeeded at 346 (offset -2 lines).
Hunk #3 succeeded at 578 (offset -8 lines).
Hunk #4 succeeded at 669 (offset -8 lines).
Hunk #5 succeeded at 686 (offset -8 lines).
patching file netwerk/base/src/nsFileStreams.h
Hunk #2 succeeded at 194 (offset 39 lines).
patching file netwerk/base/src/nsIncrementalDownload.cpp
Hunk #1 succeeded at 696 (offset -1 lines).
patching file netwerk/base/src/nsSocketTransport2.cpp
Hunk #1 succeeded at 1929 (offset 29 lines).
Hunk #2 succeeded at 2061 (offset 29 lines).
patching file netwerk/base/src/nsStandardURL.cpp
Hunk #1 succeeded at 1038 (offset -4 lines).
patching file netwerk/base/src/nsSyncStreamListener.cpp
patching file netwerk/cache/nsCacheService.cpp
Hunk #1 succeeded at 361 (offset -1 lines).
Hunk #2 succeeded at 422 (offset -1 lines).
Hunk #3 succeeded at 452 (offset -1 lines).
Hunk #4 succeeded at 481 (offset -1 lines).
Hunk #5 succeeded at 584 (offset -1 lines).
Hunk #6 succeeded at 658 (offset -1 lines).
Hunk #7 succeeded at 754 (offset -1 lines).
patching file netwerk/cache/nsDiskCacheBlockFile.cpp
patching file netwerk/cache/nsDiskCacheMap.cpp
patching file netwerk/cache/nsDiskCacheStreams.cpp
Hunk #1 FAILED at 761.
1 out of 1 hunk FAILED -- saving rejects to file netwerk/cache/nsDiskCacheStreams.cpp.rej
patching file netwerk/cache/nsMemoryCacheDevice.cpp
patching file netwerk/protocol/about/nsAboutCacheEntry.cpp
patching file netwerk/protocol/file/nsFileChannel.cpp
patching file netwerk/protocol/http/HttpBaseChannel.cpp
Hunk #1 succeeded at 1013 (offset 4 lines).
patching file netwerk/protocol/http/nsHttpChunkedDecoder.cpp
patching file netwerk/protocol/http/nsHttpConnectionMgr.cpp
Hunk #1 succeeded at 445 (offset 4 lines).
patching file netwerk/protocol/http/nsHttpResponseHead.cpp
patching file netwerk/protocol/http/nsHttpTransaction.cpp
Hunk #1 succeeded at 709 (offset 13 lines).
Hunk #2 succeeded at 728 (offset 11 lines).
Hunk #3 succeeded at 856 (offset 12 lines).
Hunk #4 FAILED at 1047.
Hunk #5 succeeded at 1078 (offset 19 lines).
1 out of 5 hunks FAILED -- saving rejects to file netwerk/protocol/http/nsHttpTransaction.cpp.rej
patching file netwerk/streamconv/converters/nsBinHexDecoder.cpp
patching file netwerk/streamconv/converters/nsIndexedToHTML.cpp
patching file netwerk/streamconv/converters/nsMultiMixedConv.cpp
Hunk #1 succeeded at 606 (offset -1 lines).
patching file netwerk/streamconv/converters/nsTXTToHTMLConv.cpp
patching file netwerk/test/TestHttp.cpp
patching file netwerk/test/TestMCTransport.cpp
patching file netwerk/test/TestOverlappedIO.cpp
patching file netwerk/test/TestPageLoad.cpp
patching file netwerk/test/TestPerf.cpp
patching file netwerk/test/TestProtocols.cpp
Hunk #1 succeeded at 483 (offset -2 lines).
patching file netwerk/test/TestStreamChannel.cpp
patching file netwerk/test/TestStreamPump.cpp
patching file netwerk/test/TestThreadedIO.cpp
patching file netwerk/test/TestUpload.cpp
patching file testing/mochitest/ssltunnel/ssltunnel.cpp
patching file uriloader/exthandler/nsExternalHelperAppService.cpp
Hunk #1 succeeded at 1933 (offset -2 lines).
patching file widget/src/android/nsWindow.cpp
Hunk #1 succeeded at 1655 (offset -12 lines).
patching file widget/src/gtk2/nsNativeKeyBindings.cpp
patching file widget/src/gtk2/nsNativeThemeGTK.cpp
Hunk #1 succeeded at 186 (offset -1 lines).
Hunk #2 succeeded at 1044 (offset -1 lines).
patching file widget/src/gtk2/nsPrintSettingsGTK.cpp
patching file widget/src/gtk2/nsWindow.cpp
Hunk #1 succeeded at 4722 (offset 36 lines).
Hunk #2 succeeded at 6551 (offset 54 lines).
patching file widget/src/os2/nsIdleServiceOS2.cpp
patching file widget/src/qt/nsWindow.cpp
Hunk #1 succeeded at 310 (offset 9 lines).
patching file widget/src/windows/KeyboardLayout.cpp
patching file widget/src/windows/nsIMM32Handler.cpp
Hunk #1 succeeded at 1201 (offset -30 lines).
Hunk #2 succeeded at 1212 (offset -31 lines).
Hunk #3 succeeded at 1238 (offset -31 lines).
Hunk #4 succeeded at 1856 (offset -31 lines).
patching file widget/src/windows/nsNativeThemeWin.cpp
Hunk #1 succeeded at 208 (offset -43 lines).
patching file widget/src/windows/nsTextStore.cpp
patching file widget/src/windows/nsWindow.cpp
Hunk #1 succeeded at 2563 (offset -114 lines).
Hunk #2 succeeded at 3418 (offset -184 lines).
Hunk #3 succeeded at 3476 (offset -184 lines).
Hunk #4 succeeded at 6388 (offset -331 lines).
Hunk #5 succeeded at 6400 (offset -331 lines).
Hunk #6 succeeded at 6807 (offset -339 lines).
patching file widget/src/xpwidgets/nsBaseDragService.cpp
Hunk #1 succeeded at 595 (offset -1 lines).
patching file widget/src/xpwidgets/nsIdleService.cpp
patching file widget/src/xpwidgets/nsNativeTheme.cpp
patching file widget/src/xpwidgets/nsNativeTheme.h
patching file widget/tests/TestWinTSF.cpp
patching file xpcom/ds/nsExpirationTracker.h
patching file xpcom/glue/nsQuickSort.cpp
patching file xpcom/glue/nsTArray-inl.h
patching file xpcom/glue/nsTArray.h
patching file xpcom/glue/nsVersionComparator.cpp
patching file xpcom/glue/nsVoidArray.cpp
Hunk #2 FAILED at 917.
Hunk #3 succeeded at 951 (offset -218 lines).
1 out of 3 hunks FAILED -- saving rejects to file xpcom/glue/nsVoidArray.cpp.rej
patching file xpcom/io/nsFastLoadFile.cpp
Hunk #2 succeeded at 567 (offset -1 lines).
Hunk #3 succeeded at 596 (offset -1 lines).
patching file xpcom/io/nsFastLoadFile.h
patching file xpcom/io/nsPipe3.cpp
Hunk #1 FAILED at 35.
Hunk #2 succeeded at 959 (offset -1 lines).
1 out of 2 hunks FAILED -- saving rejects to file xpcom/io/nsPipe3.cpp.rej
patching file xpcom/io/nsScriptableInputStream.cpp
patching file xpcom/io/nsStorageStream.cpp
Hunk #2 succeeded at 206 (offset -1 lines).
Hunk #3 succeeded at 443 (offset -1 lines).
Hunk #4 succeeded at 539 (offset -1 lines).
patching file xpcom/io/nsUnicharInputStream.cpp
patching file xpcom/string/public/nsAlgorithm.h
patching file xpcom/string/src/nsReadableUtils.cpp
Hunk #1 succeeded at 637 (offset 2 lines).
Hunk #2 succeeded at 718 (offset 2 lines).
patching file xpcom/string/src/nsTSubstring.cpp
patching file xpcom/tests/TestPipes.cpp
patching file xpfe/appshell/src/nsXULWindow.cpp
Hunk #1 succeeded at 1331 (offset -4 lines).
patching file xpinstall/src/CertReader.cpp
patching file xpinstall/src/nsXPInstallManager.cpp
Hunk #1 succeeded at 1229 (offset -1 lines).
Hunk #2 succeeded at 1256 (offset -1 lines).
I'm going to try landing the parts that do apply.
Took me a while, but I managed to get something landed.

http://hg.mozilla.org/mozilla-central/rev/e3f863f8bf4a

Note that the change to nsCoord.h was problematic, it caused a hard assertion failure in layout/generic/crashtests/478131-1.html, and rounding errors in content/smil/test/test_smilCSSPaced.xhtml and content/smil/test/test_smilMappedAttrPaced.xhtml.

I'll file a new bug for the rest.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 7
Version: unspecified → Trunk
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: