diff --git a/gfx/thebes/SharedFontList.cpp b/gfx/thebes/SharedFontList.cpp index 06d9937134db..9ba6a0d7a608 100644 --- a/gfx/thebes/SharedFontList.cpp +++ b/gfx/thebes/SharedFontList.cpp @@ -615,7 +615,12 @@ void FontList::ShareBlocksToProcess(nsTArray* aBlocks, base::SharedMemoryHandle* handle = aBlocks->AppendElement(base::SharedMemory::NULLHandle()); if (!shmem->ShareToProcess(aPid, handle)) { - MOZ_CRASH("failed to share block"); + // If something went wrong here, we just bail out; the child will need to + // request the blocks as needed, at some performance cost. (Although in + // practice this may mean resources are so constrained the child process + // isn't really going to work at all. But that's not our problem here.) + aBlocks->Clear(); + return; } } }