Last Comment Bug 820128 - New DMD reports double-report of imgFrame
: New DMD reports double-report of imgFrame
Status: RESOLVED FIXED
[MemShrink:P2]
:
Product: Core
Classification: Components
Component: ImageLib (show other bugs)
: Trunk
: ARM Gonk (Firefox OS)
: -- normal (vote)
: mozilla20
Assigned To: Nicholas Nethercote [:njn]
:
Mentors:
Depends on: NewDMD
Blocks:
  Show dependency treegraph
 
Reported: 2012-12-10 13:38 PST by Justin Lebar (not reading bugmail)
Modified: 2012-12-23 11:50 PST (History)
2 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
fixed
fixed
fixed


Attachments
Use moz_malloc_size_of to measure "images-content-used-uncompressed". (1.37 KB, patch)
2012-12-17 19:13 PST, Nicholas Nethercote [:njn]
justin.lebar+bug: review+
justin.lebar+bug: approval‑mozilla‑aurora+
justin.lebar+bug: approval‑mozilla‑b2g18+
Details | Diff | Splinter Review

Description Justin Lebar (not reading bugmail) 2012-12-10 13:38:00 PST
In the main B2G process (see attachment 690543 [details]), I see:

> Double-reported: ~14 blocks in block group 1 of 2
>  ~57,344 bytes (~57,344 requested / ~0 slop)
>  Allocated at
>        malloc /Users/jlebar/code/moz/ff-git/src/memory/build/replace_malloc.c:152 (0x4020b2ae libmozglue.so+0x42ae)
>        moz_malloc /Users/jlebar/code/moz/ff-git/src/memory/mozalloc/mozalloc.cpp:65 (0x40e5adf2 libxul.so+0xc37df2)
>        imgFrame::Init(int, int, int, int, gfxASurface::gfxImageFormat, unsigned char) /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:170 (0x412661a2 libxul.so+0x33f1a2)
>        mozilla::image::RasterImage::InternalAddFrame(unsigned int, int, int, int, int, gfxASurface::gfxImageFormat, unsigned char, unsigned char**, unsigned int*, unsigned int**, unsigned int*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x412637e6 libxul.so+0x33c7e6)
>        mozilla::image::RasterImage::EnsureFrame(unsigned int, int, int, int, int, gfxASurface::gfxImageFormat, unsigned char, unsigned char**, unsigned int*, unsigned int**, unsigned int*) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1402 (0x41263952 libxul.so+0x33c952)
>        mozilla::image::nsGIFDecoder2::BeginImageFrame(unsigned short) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x41270d34 libxul.so+0x349d34)
>        mozilla::image::nsGIFDecoder2::WriteInternal(char const*, unsigned int) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x412711d4 libxul.so+0x34a1d4)
>        mozilla::image::Decoder::Write(char const*, unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/Decoder.cpp:80 (0x4055b9c0 libxul.so+0x3389c0)
>        mozilla::image::RasterImage::WriteToDecoder(char const*, unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:2649 (0x4055d976 libxul.so+0x33a976)
>        mozilla::image::RasterImage::DecodeSomeData(unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:3168 (0x4055da0c libxul.so+0x33aa0c)
>        mozilla::image::RasterImage::DecodeWorker::DecodeSomeOfImage(mozilla::image::RasterImage*, mozilla::image::RasterImage::DecodeWorker::DecodeType) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4055e172 libxul.so+0x33b172)
>        mozilla::image::RasterImage::DecodeWorker::DecodeUntilSizeAvailable(mozilla::image::RasterImage*) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:3429 (0x4055e2c8 libxul.so+0x33b2c8)
>        mozilla::image::RasterImage::SourceDataComplete() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4055f32e libxul.so+0x33c32e)
>        imgRequest::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) /Users/jlebar/code/moz/ff-git/src/image/src/imgRequest.cpp:656 (0x40567202 libxul.so+0x344202)
>        ProxyListener::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:2063 (0x405628b4 libxul.so+0x33f8b4)
>        nsCOMPtr<nsIStreamListener>::operator=(nsIStreamListener*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x40542c76 libxul.so+0x31fc76)
>        nsCOMPtr<nsIStreamListener>::operator=(nsIStreamListener*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x404ad460 libxul.so+0x28a460)
>        nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) /Users/jlebar/code/moz/ff-git/src/netwerk/base/src/nsInputStreamPump.cpp:382 (0x404ad6c0 libxul.so+0x28a6c0)
>        nsCOMPtr<nsIOutputStreamCallback>::operator=(nsIOutputStreamCallback*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x40c59896 libxul.so+0xa36896)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:83 (0x40b62008 libxul.so+0x93f008)
>        MessageLoop::RunInternal() /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:216 (0x40c85d40 libxul.so+0xa62d40)
>        ~AutoRunState /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:502 (0x40c85df6 libxul.so+0xa62df6)
> 
>  Previously reported by 'images' at
>        mozilla::dmd::Report(void const*, char const*) /Users/jlebar/code/moz/ff-git/src/tools/dmd/DMD.cpp:1456 (0x400c5bc4 libdmd.so+0x2bc4)
>        ImagesMallocSizeOf /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:66 (0x40563174 libxul.so+0x340174)
>        imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:810 (0x4126661c libxul.so+0x33f61c)
>        mozilla::image::RasterImage::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1185 (0x4126113e libxul.so+0x33a13e)
>        mozilla::image::RasterImage::HeapSizeOfDecodedWithComputedFallback(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1200 (0x41261186 libxul.so+0x33a186)
>        imgMemoryReporter::EntryUsedUncompressedSize(nsACString_internal const&, imgCacheEntry*, void*) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:252 (0x41266a80 libxul.so+0x33fa80)
>        nsBaseHashtable<nsCStringHashKey, nsRefPtr<imgCacheEntry>, imgCacheEntry*>::s_EnumReadStub(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsBaseHashtable.h:409 (0x40562acc libxul.so+0x33facc)
>        PL_DHashTableEnumerate /Users/jlebar/code/moz/ff-git/src/xpcom/glue/pldhash.cpp:717 (0x40c4473e libxul.so+0xa2173e)
>        nsTArray_base<nsTArrayDefaultAllocator>::Length() const /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsTArray.h:204 (0x41266bb6 libxul.so+0x33fbb6)
>        nsMemoryInfoDumper::DumpMemoryReportsToFileImpl(nsAString_internal const&) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:610 (0x40c6f004 libxul.so+0xa4c004)
>        nsMemoryInfoDumper::DumpMemoryReportsToFile(nsAString_internal const&, bool, bool) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:343 (0x40c6f74c libxul.so+0xa4c74c)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x419725e6 libxul.so+0xa4b5e6)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:117 (0x40b6204e libxul.so+0x93f04e)
>        MessageLoop::RunInternal() /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:216 (0x40c85d40 libxul.so+0xa62d40)
>        ~AutoRunState /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:502 (0x40c85df6 libxul.so+0xa62df6)
>        nsBaseAppShell::Run() /Users/jlebar/code/moz/ff-git/src/widget/xpwidgets/nsBaseAppShell.cpp:165 (0x40aed168 libxul.so+0x8ca168)
>        nsAppStartup::Run() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4174ef44 libxul.so+0x827f44)
>        XREMain::XRE_mainRun() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x411a28ec libxul.so+0x27b8ec)
>        XREMain::XRE_main(int, char**, nsXREAppData const*) /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:3899 (0x411a49a4 libxul.so+0x27d9a4)
>        XRE_main /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:4089 (0x411a4af0 libxul.so+0x27daf0)
>            (0xa18e /system/b2g/b2g+0xa18e) (can't find lib)
>        __libc_init /Users/jlebar/code/moz/B2G/bionic/libc/bionic/libc_init_dynamic.c:114 (0x400d177a libc.so+0x1677a)
> 
>  Now reported by 'images' at
>        mozilla::dmd::Report(void const*, char const*) /Users/jlebar/code/moz/ff-git/src/tools/dmd/DMD.cpp:1456 (0x400c5bc4 libdmd.so+0x2bc4)
>        ImagesMallocSizeOf /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:66 (0x40563174 libxul.so+0x340174)
>        imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:810 (0x4126661c libxul.so+0x33f61c)
>        mozilla::image::RasterImage::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1185 (0x4126113e libxul.so+0x33a13e)
>        mozilla::image::RasterImage::HeapSizeOfDecodedWithComputedFallback(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1200 (0x41261186 libxul.so+0x33a186)
>        imgMemoryReporter::EntryAllSizes(nsACString_internal const&, imgCacheEntry*, void*) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:222 (0x41266a36 libxul.so+0x33fa36)
>        nsBaseHashtable<nsCStringHashKey, nsRefPtr<imgCacheEntry>, imgCacheEntry*>::s_EnumReadStub(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsBaseHashtable.h:409 (0x40562acc libxul.so+0x33facc)
>        PL_DHashTableEnumerate /Users/jlebar/code/moz/ff-git/src/xpcom/glue/pldhash.cpp:717 (0x40c4473e libxul.so+0xa2173e)
>        nsTArray_base<nsTArrayDefaultAllocator>::Length() const /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsTArray.h:204 (0x40562c56 libxul.so+0x33fc56)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x40c6f21e libxul.so+0xa4c21e)
>        nsMemoryInfoDumper::DumpMemoryReportsToFile(nsAString_internal const&, bool, bool) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:343 (0x40c6f74c libxul.so+0xa4c74c)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x419725e6 libxul.so+0xa4b5e6)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:117 (0x40b6204e libxul.so+0x93f04e)
>        MessageLoop::RunInternal() /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:216 (0x40c85d40 libxul.so+0xa62d40)
>        ~AutoRunState /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:502 (0x40c85df6 libxul.so+0xa62df6)
>        nsBaseAppShell::Run() /Users/jlebar/code/moz/ff-git/src/widget/xpwidgets/nsBaseAppShell.cpp:165 (0x40aed168 libxul.so+0x8ca168)
>        nsAppStartup::Run() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4174ef44 libxul.so+0x827f44)
>        XREMain::XRE_mainRun() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x411a28ec libxul.so+0x27b8ec)
>        XREMain::XRE_main(int, char**, nsXREAppData const*) /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:3899 (0x411a49a4 libxul.so+0x27d9a4)
>        XRE_main /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:4089 (0x411a4af0 libxul.so+0x27daf0)
>            (0xa18e /system/b2g/b2g+0xa18e) (can't find lib)
>        __libc_init /Users/jlebar/code/moz/B2G/bionic/libc/bionic/libc_init_dynamic.c:114 (0x400d177a libc.so+0x1677a)
> 
> Double-reported: 1 block in block group 2 of 2
>  8,192 bytes (5,120 requested / 3,072 slop)
>  Allocated at
>        malloc /Users/jlebar/code/moz/ff-git/src/memory/build/replace_malloc.c:152 (0x4020b2ae libmozglue.so+0x42ae)
>        moz_malloc /Users/jlebar/code/moz/ff-git/src/memory/mozalloc/mozalloc.cpp:65 (0x40e5adf2 libxul.so+0xc37df2)
>        gfxImageSurface /Users/jlebar/code/moz/ff-git/src/gfx/thebes/gfxImageSurface.cpp:110 (0x419ae7b6 libxul.so+0xa877b6)
>        imgFrame::Init(int, int, int, int, gfxASurface::gfxImageFormat, unsigned char) /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:193 (0x412661c2 libxul.so+0x33f1c2)
>        mozilla::image::RasterImage::InternalAddFrame(unsigned int, int, int, int, int, gfxASurface::gfxImageFormat, unsigned char, unsigned char**, unsigned int*, unsigned int**, unsigned int*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x412637e6 libxul.so+0x33c7e6)
>        mozilla::image::RasterImage::EnsureFrame(unsigned int, int, int, int, int, gfxASurface::gfxImageFormat, unsigned char, unsigned char**, unsigned int*, unsigned int**, unsigned int*) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1402 (0x41263952 libxul.so+0x33c952)
>        mozilla::image::RasterImage::EnsureFrame(unsigned int, int, int, int, int, gfxASurface::gfxImageFormat, unsigned char**, unsigned int*) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1448 (0x41263a7c libxul.so+0x33ca7c)
>        mozilla::image::nsGIFDecoder2::BeginImageFrame(unsigned short) /Users/jlebar/code/moz/ff-git/src/image/decoders/nsGIFDecoder2.cpp:203 (0x41270d60 libxul.so+0x349d60)
>        mozilla::image::nsGIFDecoder2::WriteInternal(char const*, unsigned int) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x412711d4 libxul.so+0x34a1d4)
>        mozilla::image::Decoder::Write(char const*, unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/Decoder.cpp:80 (0x4055b9c0 libxul.so+0x3389c0)
>        mozilla::image::RasterImage::WriteToDecoder(char const*, unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:2649 (0x4055d976 libxul.so+0x33a976)
>        mozilla::image::RasterImage::DecodeSomeData(unsigned int) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:3168 (0x4055da0c libxul.so+0x33aa0c)
>        mozilla::image::RasterImage::DecodeWorker::DecodeSomeOfImage(mozilla::image::RasterImage*, mozilla::image::RasterImage::DecodeWorker::DecodeType) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4055e172 libxul.so+0x33b172)
>        mozilla::image::RasterImage::DecodeWorker::DecodeUntilSizeAvailable(mozilla::image::RasterImage*) /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:3429 (0x4055e2c8 libxul.so+0x33b2c8)
>        mozilla::image::RasterImage::SourceDataComplete() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4055f32e libxul.so+0x33c32e)
>        imgRequest::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) /Users/jlebar/code/moz/ff-git/src/image/src/imgRequest.cpp:656 (0x40567202 libxul.so+0x344202)
>        ProxyListener::OnStopRequest(nsIRequest*, nsISupports*, tag_nsresult) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:2063 (0x405628b4 libxul.so+0x33f8b4)
>        nsCOMPtr<nsIStreamListener>::operator=(nsIStreamListener*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x40542c76 libxul.so+0x31fc76)
>        nsCOMPtr<nsIStreamListener>::operator=(nsIStreamListener*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x404ad460 libxul.so+0x28a460)
>        nsInputStreamPump::OnInputStreamReady(nsIAsyncInputStream*) /Users/jlebar/code/moz/ff-git/src/netwerk/base/src/nsInputStreamPump.cpp:382 (0x404ad6c0 libxul.so+0x28a6c0)
>        nsCOMPtr<nsIOutputStreamCallback>::operator=(nsIOutputStreamCallback*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:624 (0x40c59896 libxul.so+0xa36896)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:83 (0x40b62008 libxul.so+0x93f008)
> 
>  Previously reported by 'images' at
>        mozilla::dmd::Report(void const*, char const*) /Users/jlebar/code/moz/ff-git/src/tools/dmd/DMD.cpp:1456 (0x400c5bc4 libdmd.so+0x2bc4)
>        ImagesMallocSizeOf /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:66 (0x40563174 libxul.so+0x340174)
>        gfxImageSurface::SizeOfExcludingThis(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/gfx/thebes/gfxImageSurface.cpp:182 (0x419ae4b2 libxul.so+0xa874b2)
>        gfxImageSurface::SizeOfIncludingThis(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/gfx/thebes/gfxImageSurface.cpp:191 (0x419a7d94 libxul.so+0xa80d94)
>        imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:832 (0x4126665c libxul.so+0x33f65c)
>        mozilla::image::RasterImage::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1185 (0x4126113e libxul.so+0x33a13e)
>        mozilla::image::RasterImage::HeapSizeOfDecodedWithComputedFallback(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1200 (0x41261186 libxul.so+0x33a186)
>        imgMemoryReporter::EntryUsedUncompressedSize(nsACString_internal const&, imgCacheEntry*, void*) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:252 (0x41266a80 libxul.so+0x33fa80)
>        nsBaseHashtable<nsCStringHashKey, nsRefPtr<imgCacheEntry>, imgCacheEntry*>::s_EnumReadStub(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsBaseHashtable.h:409 (0x40562acc libxul.so+0x33facc)
>        PL_DHashTableEnumerate /Users/jlebar/code/moz/ff-git/src/xpcom/glue/pldhash.cpp:717 (0x40c4473e libxul.so+0xa2173e)
>        nsTArray_base<nsTArrayDefaultAllocator>::Length() const /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsTArray.h:204 (0x41266bb6 libxul.so+0x33fbb6)
>        nsMemoryInfoDumper::DumpMemoryReportsToFileImpl(nsAString_internal const&) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:610 (0x40c6f004 libxul.so+0xa4c004)
>        nsMemoryInfoDumper::DumpMemoryReportsToFile(nsAString_internal const&, bool, bool) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:343 (0x40c6f74c libxul.so+0xa4c74c)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x419725e6 libxul.so+0xa4b5e6)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:117 (0x40b6204e libxul.so+0x93f04e)
>        MessageLoop::RunInternal() /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:216 (0x40c85d40 libxul.so+0xa62d40)
>        ~AutoRunState /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:502 (0x40c85df6 libxul.so+0xa62df6)
>        nsBaseAppShell::Run() /Users/jlebar/code/moz/ff-git/src/widget/xpwidgets/nsBaseAppShell.cpp:165 (0x40aed168 libxul.so+0x8ca168)
>        nsAppStartup::Run() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4174ef44 libxul.so+0x827f44)
>        XREMain::XRE_mainRun() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x411a28ec libxul.so+0x27b8ec)
>        XREMain::XRE_main(int, char**, nsXREAppData const*) /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:3899 (0x411a49a4 libxul.so+0x27d9a4)
>        XRE_main /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:4089 (0x411a4af0 libxul.so+0x27daf0)
> 
>  Now reported by 'images' at
>        mozilla::dmd::Report(void const*, char const*) /Users/jlebar/code/moz/ff-git/src/tools/dmd/DMD.cpp:1456 (0x400c5bc4 libdmd.so+0x2bc4)
>        ImagesMallocSizeOf /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:66 (0x40563174 libxul.so+0x340174)
>        gfxImageSurface::SizeOfExcludingThis(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/gfx/thebes/gfxImageSurface.cpp:182 (0x419ae4b2 libxul.so+0xa874b2)
>        gfxImageSurface::SizeOfIncludingThis(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/gfx/thebes/gfxImageSurface.cpp:191 (0x419a7d94 libxul.so+0xa80d94)
>        imgFrame::SizeOfExcludingThisWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/imgFrame.cpp:832 (0x4126665c libxul.so+0x33f65c)
>        mozilla::image::RasterImage::SizeOfDecodedWithComputedFallbackIfHeap(gfxASurface::MemoryLocation, unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1185 (0x4126113e libxul.so+0x33a13e)
>        mozilla::image::RasterImage::HeapSizeOfDecodedWithComputedFallback(unsigned int (*)(void const*)) const /Users/jlebar/code/moz/ff-git/src/image/src/RasterImage.cpp:1200 (0x41261186 libxul.so+0x33a186)
>        imgMemoryReporter::EntryAllSizes(nsACString_internal const&, imgCacheEntry*, void*) /Users/jlebar/code/moz/ff-git/src/image/src/imgLoader.cpp:222 (0x41266a36 libxul.so+0x33fa36)
>        nsBaseHashtable<nsCStringHashKey, nsRefPtr<imgCacheEntry>, imgCacheEntry*>::s_EnumReadStub(PLDHashTable*, PLDHashEntryHdr*, unsigned int, void*) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsBaseHashtable.h:409 (0x40562acc libxul.so+0x33facc)
>        PL_DHashTableEnumerate /Users/jlebar/code/moz/ff-git/src/xpcom/glue/pldhash.cpp:717 (0x40c4473e libxul.so+0xa2173e)
>        nsTArray_base<nsTArrayDefaultAllocator>::Length() const /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsTArray.h:204 (0x40562c56 libxul.so+0x33fc56)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x40c6f21e libxul.so+0xa4c21e)
>        nsMemoryInfoDumper::DumpMemoryReportsToFile(nsAString_internal const&, bool, bool) /Users/jlebar/code/moz/ff-git/src/xpcom/base/nsMemoryInfoDumper.cpp:343 (0x40c6f74c libxul.so+0xa4c74c)
>        ~nsCOMPtr /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsCOMPtr.h:453 (0x419725e6 libxul.so+0xa4b5e6)
>        nsThread::ProcessNextEvent(bool, bool*) /Users/jlebar/code/moz/ff-git/src/xpcom/threads/nsThread.cpp:627 (0x40c63c1e libxul.so+0xa40c1e)
>        NS_ProcessNextEvent_P(nsIThread*, bool) /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x40c43dfa libxul.so+0xa20dfa)
>        mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /Users/jlebar/code/moz/ff-git/src/ipc/glue/MessagePump.cpp:117 (0x40b6204e libxul.so+0x93f04e)
>        MessageLoop::RunInternal() /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:216 (0x40c85d40 libxul.so+0xa62d40)
>        ~AutoRunState /Users/jlebar/code/moz/ff-git/src/ipc/chromium/src/base/message_loop.cc:502 (0x40c85df6 libxul.so+0xa62df6)
>        nsBaseAppShell::Run() /Users/jlebar/code/moz/ff-git/src/widget/xpwidgets/nsBaseAppShell.cpp:165 (0x40aed168 libxul.so+0x8ca168)
>        nsAppStartup::Run() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x4174ef44 libxul.so+0x827f44)
>        XREMain::XRE_mainRun() /Users/jlebar/code/moz/B2G/objdir-gecko/dist/include/nsError.h:155 (0x411a28ec libxul.so+0x27b8ec)
>        XREMain::XRE_main(int, char**, nsXREAppData const*) /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:3899 (0x411a49a4 libxul.so+0x27d9a4)
>        XRE_main /Users/jlebar/code/moz/ff-git/src/toolkit/xre/nsAppRunner.cpp:4089 (0x411a4af0 libxul.so+0x27daf0)
Comment 1 Nicholas Nethercote [:njn] 2012-12-17 19:13:34 PST
Created attachment 693219 [details] [diff] [review]
Use moz_malloc_size_of to measure "images-content-used-uncompressed".

Easy fix.  The comment explains what happened.

The good news is that this was just a DMD-interaction bug -- the results in
about:memory are correct and unaffected.
Comment 2 Justin Lebar (not reading bugmail) 2012-12-18 12:55:14 PST
Comment on attachment 693219 [details] [diff] [review]
Use moz_malloc_size_of to measure "images-content-used-uncompressed".

r+a=me
Comment 3 Nicholas Nethercote [:njn] 2012-12-19 15:15:30 PST
https://hg.mozilla.org/integration/mozilla-inbound/rev/d8ace39cb45f
Comment 4 Ed Morley [:emorley] 2012-12-20 13:47:14 PST
https://hg.mozilla.org/mozilla-central/rev/d8ace39cb45f

Note You need to log in before you can comment on or make changes to this bug.