User:Egmetcalfe/Dead Code
Note: Code Size is a count of the number of GIMPLE instructions during pass cfg.
Contents
- 1 Unconditionally Dead
- 1.1 content/base
- 1.1.1 PRBool nsParserUtils::GetQuotedAttrNameAt(const nsString&,PRUint32,nsAString_internal&)
- 1.1.2 nsIContent* nsContentUtils::FindFirstChildWithResolvedTag(nsIContent*,PRInt32,nsIAtom*)
- 1.1.3 nsIDocShell* nsContentUtils::GetDocShellFromCaller()
- 1.1.4 nsIContent* nsContentUtils::GetReferencedElement(nsIURI*,nsIContent*)
- 1.1.5 void nsXMLNameSpaceMap::RemovePrefix(nsIAtom*)
- 1.1.6 nsresult nsPlainTextSerializer::WillProcessTokens()
- 1.1.7 nsresult nsAttrAndChildArray::SetAttr(nsIAtom*,const nsAString_internal&)
- 1.2 content/html
- 1.2.1 void nsGenericHTMLElement::GetHrefURIToMutate(nsIURI**)
- 1.2.2 nsresult nsGenericHTMLElement::SetFloatAttr(nsIAtom*,float)
- 1.2.3 nsresult nsGenericHTMLElement::GetFloatAttr(nsIAtom*,float,float*)
- 1.2.4 nsresult nsHTMLDNSPrefetch::PrefetchHigh(nsAString_internal&)
- 1.2.5 nsresult nsHTMLDNSPrefetch::PrefetchHigh(Link*)
- 1.2.6 nsresult nsHTMLDNSPrefetch::PrefetchMedium(nsAString_internal&)
- 1.2.7 nsresult nsHTMLDNSPrefetch::PrefetchMedium(Link*)
- 1.2.8 PRBool SinkContext::IsAncestorContainer(nsHTMLTag)
- 1.2.9 nsresult nsHTMLFragmentContentSink::AddTextToContent(nsIContent*,const nsAString_internal&)
- 1.3 content/media
- 1.4 content/events
- 1.5 content/xslt
- 1.5.1 MBool txDouble::isNeg(double)
- 1.5.2 PRInt32 txNamespaceMap::lookupNamespace(const nsAString_internal&)
- 1.5.3 txXPathNode* txXPathNodeUtils::getDocument(const txXPathNode&)
- 1.5.4 PRBool txEarlyEvalContext::isStripSpaceAllowed(const txXPathNode&)
- 1.5.5 PRBool txExecutionState::isStripSpaceAllowed(const txXPathNode&)
- 1.5.6 PRBool txXSLTParamContext::isStripSpaceAllowed(const txXPathNode&)
- 1.5.7 nsresult txResultRecycler::getNodeSet(const txXPathNode&,txNodeSet**)
- 1.6 content/xul
- 1.7 content/xbl
- 1.8 content/canvas
- 1.8.1 void mozilla::SimpleBuffer::Prepare(PRUint32,PRUint32,PRUint32)
- 1.8.2 void mozilla::SimpleBuffer::EnsureCapacity(PRBool,PRUint32)
- 1.8.3 PRBool mozilla::SimpleBuffer::InitFromJSArray(PRUint32,PRUint32,JSContext*,JSObject*,jsuint)
- 1.8.4 void mozilla::CanvasUtils::LogMessagef(const char*)
- 1.8.5 void mozilla::CanvasUtils::LogMessage(const nsCString&)
- 1.9 modules/libreg
- 1.9.1 REGERR NR_RegIsWritable(HREG)
- 1.9.2 REGERR VR_PackRegistry(void*,nr_RegPackCallbackFunc)
- 1.9.3 REGERR NR_RegEnumEntries(HREG,RKEY,REGENUM*,char*,uint32,REGINFO*)
- 1.9.4 REGERR VR_UninstallEnumSharedFiles(char*,REGENUM*,char*,uint32)
- 1.9.5 REGERR NR_RegPack(HREG,void*,nr_RegPackCallbackFunc)
- 1.9.6 REGERR VR_PackRegistry(void*,nr_RegPackCallbackFunc)
- 1.10 modules/libpref
- 1.11 accessible
- 1.11.1 void nsCoreUtils::GetElementsHavingIDRefsAttrImpl(nsIContent*,nsCString&,nsIAtom*,nsIMutableArray*)
- 1.11.2 void nsCoreUtils::GetElementsHavingIDRefsAttr(nsIContent*,nsIContent*,nsIAtom*,nsIArray**)
- 1.11.3 nsresult nsRelUtils::AddTargetFromChildrenHavingIDRefsAttr(PRUint32,nsIAccessibleRelation**,nsIContent*,nsIContent*,nsIAtom*)
- 1.11.4 already_AddRefed nsAccUtils::QueryAccessibleTable(nsIAccessibleTable*)
- 1.11.5 already_AddRefed nsCoreUtils::GetLastSensibleColumn(nsITreeBoxObject*)
- 1.11.6 PRBool nsFontSizeTextAttr::GetValueFor(nsIDOMElement*,nscoord*)
- 1.11.7 PRBool nsBGColorTextAttr::GetValueFor(nsIDOMElement*,nscolor*)
- 1.11.8 PRBool nsFontWeightTextAttr::GetValueFor(nsIDOMElement*,PRInt32*)
- 1.11.9 PRBool nsTextAttr::GetValue(nsAString_internal&,int)
- 1.11.10 void nsCSSTextAttr::Format(const nsAutoString&,nsAString_internal&)
- 1.11.11 void nsTextAttr::Format(const nsAutoString&,nsAString_internal&)
- 1.11.12 void nsLangTextAttr::Format(const nsAutoString&,nsAString_internal&)
- 1.12 embedding/components/windowwatcher
- 1.13 modules/libpref
- 1.14 gfx/thebes/public
- 1.15 gfx/src/thebes
- 1.15.1 nsresult nsThebesRenderingContext::GetTextDimensions(const PRUnichar*,PRInt32,PRInt32,PRInt32*,PRInt32,nsTextDimensions&,PRInt32&,nsTextDimensions&,PRInt32*)
- 1.15.2 nsresult nsThebesRenderingContext::GetTextDimensionsInternal(const PRUnichar*,PRInt32,PRInt32,PRInt32*,PRInt32,nsTextDimensions&,PRInt32&,nsTextDimensions&,PRInt32*)
- 1.15.3 nsresult nsThebesRenderingContext::DrawEllipse(const nsRect&)
- 1.16 modules/libpr0n
- 1.17 editor
- 1.18 security/manager/ssl
- 1.18.1 nsresult nsCMSMessage::CommonAsyncVerifySignature(nsISMimeVerificationListener*,unsigned char*,PRUint32)
- 1.18.2 nsresult nsCMSMessage::AsyncVerifyDetachedSignature(nsISMimeVerificationListener*,unsigned char*,PRUint32)
- 1.18.3 nsresult nsCMSMessage::AsyncVerifySignature(nsISMimeVerificationListener*)
- 1.18.4 nsCOMPtr& nsCOMPtr::operator=(nsICMSMessage*)
- 1.18.5 nsCOMPtr& nsCOMPtr::operator=(nsISMimeVerificationListener*)
- 1.19 intl
- 1.19.1 nsresult nsCaseConversionImp2::ToTitle(const PRUnichar*,PRUnichar*,PRUint32,PRBool)
- 1.19.2 PRUint16* MapperToCCMap(nsICharRepresentable*)
- 1.19.3 void nsBufferDecoderSupport::DoubleBuffer()
- 1.19.4 nsresult nsDetectionAdaptor::ProcessTokens()
- 1.19.5 nsresult nsDetectionAdaptor::WillAddToken(CToken&)
- 1.19.6 nsDebugDetector::nsDebugDetector(nsDebugDetectorSel)
- 1.20 dom
- 1.21 parser
- 1.21.1 void nsCParserNode::SetGenericState(PRBool)
- 1.21.2 PRBool nsCParserNode::GetGenericState()
- 1.21.3 const nsAString_internal& nsCParserNode::GetTagName()
- 1.21.4 void nsCParserNode::GetSource(nsString&)
- 1.21.5 void nsCParserStartNode::GetSource(nsString&)
- 1.21.6 nsTagEntry* nsEntryStack::PopEntry()
- 1.21.7 nsTagEntry* nsDTDContext::PopEntry()
- 1.21.8 nsCParserNode* nsDTDContext::PopStyle()
- 1.21.9 nsTagEntry* nsDTDContext::LastEntry()
- 1.21.10 nsHTMLTag nsEntryStack::First()
- 1.21.11 nsHTMLTag nsDTDContext::First()
- 1.22 ipc
- 1.23 widget
- 1.24 extensions
- 1.1 content/base
- 2 Bugs/Strangeness
Unconditionally Dead
content/base
PRBool nsParserUtils::GetQuotedAttrNameAt(const nsString&,PRUint32,nsAString_internal&)
Declaration Definition MXR Search *
Code Size: 96, Static method
nsIContent* nsContentUtils::FindFirstChildWithResolvedTag(nsIContent*,PRInt32,nsIAtom*)
Declaration Definition MXR Search *
Code Size: 92, Static method
nsIDocShell* nsContentUtils::GetDocShellFromCaller()
Declaration Definition MXR Search *
Code Size: 33, Static method
nsIContent* nsContentUtils::GetReferencedElement(nsIURI*,nsIContent*)
Code Size: 6, Static method
void nsXMLNameSpaceMap::RemovePrefix(nsIAtom*)
Declaration Definition MXR Search *
Code Size: 3, NS_HIDDEN_
nsresult nsPlainTextSerializer::WillProcessTokens()
MXR Search (forgot to include this in original patch)
Code Size: 2
nsresult nsAttrAndChildArray::SetAttr(nsIAtom*,const nsAString_internal&)
Run this search. Save page to file. grep for lines with only one comma: grep "^[^,]*,[^,]*$"
Code Size: 71
content/html
void nsGenericHTMLElement::GetHrefURIToMutate(nsIURI**)
Code Size: 3
nsresult nsGenericHTMLElement::SetFloatAttr(nsIAtom*,float)
Code Size: 6
MXR Search (One use in a dead macro) *
nsresult nsGenericHTMLElement::GetFloatAttr(nsIAtom*,float,float*)
MXR Search (One use in a dead macro) *
Code Size: 15
nsresult nsHTMLDNSPrefetch::PrefetchHigh(nsAString_internal&)
Code Size: 3
nsresult nsHTMLDNSPrefetch::PrefetchHigh(Link*)
Code Size: 3
nsresult nsHTMLDNSPrefetch::PrefetchMedium(nsAString_internal&)
Code Size: 3
nsresult nsHTMLDNSPrefetch::PrefetchMedium(Link*)
Code Size: 3
PRBool SinkContext::IsAncestorContainer(nsHTMLTag)
Code Size: 13
nsresult nsHTMLFragmentContentSink::AddTextToContent(nsIContent*,const nsAString_internal&)
Code Size: 26
content/media
nsresult nsMediaCacheStream::ReadFromCache(char*,PRInt64,PRInt64)
Code Size: 82
content/events
nsresult nsPrivateTextRange::SetRangeType(PRUint16)
Code Size: 3
nsresult nsPrivateTextRange::SetRangeEnd(PRUint16)
Code Size: 3
nsresult nsPrivateTextRange::SetRangeStart(PRUint16)
Code Size: 3
content/xslt
MBool txDouble::isNeg(double)
Code Size: 5
PRInt32 txNamespaceMap::lookupNamespace(const nsAString_internal&)
Code Size: 8
Note: Only lookupNamespace(nsIAtom*) is used
txXPathNode* txXPathNodeUtils::getDocument(const txXPathNode&)
Code Size: 11
PRBool txEarlyEvalContext::isStripSpaceAllowed(const txXPathNode&)
Code Size: 2
PRBool txExecutionState::isStripSpaceAllowed(const txXPathNode&)
Code Size: 6
PRBool txXSLTParamContext::isStripSpaceAllowed(const txXPathNode&)
Code Size: 2
Note: Difficult to check but all PRBool isStripSpaceAllowed functions are dead. There are a number of MBool isStripSpaceAllowed functions which are not, however.
nsresult txResultRecycler::getNodeSet(const txXPathNode&,txNodeSet**)
Code Size: 29
content/xul
PRBool TestNode::HasAncestor(const ReteNode*)
Code Size: 11
PRBool nsXULDocument::ContextStack::IsInsideXULTemplate()
Code Size: 16
content/xbl
nsCOMArray* nsXBLPrototypeBinding::GetStyleSheets()
Code Size: 6
content/canvas
====PRUint32 mozilla::SimpleBuffer::ElementSize()====
Code Size: 26
void mozilla::SimpleBuffer::Prepare(PRUint32,PRUint32,PRUint32)
Code Size: 9
void mozilla::SimpleBuffer::EnsureCapacity(PRBool,PRUint32)
Code Size: 19
PRBool mozilla::SimpleBuffer::InitFromJSArray(PRUint32,PRUint32,JSContext*,JSObject*,jsuint)
Code Size: 127
Note: SimpleBuffer has been removed in a recent revision
void mozilla::CanvasUtils::LogMessagef(const char*)
Code Size: 24
void mozilla::CanvasUtils::LogMessage(const nsCString&)
MXR Search Difficult to verify
Code Size: 26
modules/libreg
REGERR NR_RegIsWritable(HREG)
Code Size: 18
REGERR VR_PackRegistry(void*,nr_RegPackCallbackFunc)
Code Size: 9
Path Info: VR_UninstallEnumSharedFiles calls NR_RegEnumEntries
REGERR NR_RegEnumEntries(HREG,RKEY,REGENUM*,char*,uint32,REGINFO*)
Code Size: 60
Code Size: 57
Note: NR_RegEnumEntries is called by nr_addNodesToNewReg which is #ifdef RESURRECT_LATER here http://mxr.mozilla.org/mozilla-central/source/modules/libreg/src/reg.c#3650 (with a comment saying resurrect after mozilla 1)
Path Info: VR_PackRegistry calls NR_RegPack
REGERR NR_RegPack(HREG,void*,nr_RegPackCallbackFunc)
Code Size: 2
REGERR VR_PackRegistry(void*,nr_RegPackCallbackFunc)
Code Size: 9
modules/libpref
nsresult PREF_GetCharPref(const char*,char*,int*,PRBool)
Code Size: 47
accessible
Path info: AddTargetFromChildrenHavingIDRefsAttr calls GetElementsHavingIDRefsAttr which calls GetElementsHavingIDRefsAttrImpl.
void nsCoreUtils::GetElementsHavingIDRefsAttrImpl(nsIContent*,nsCString&,nsIAtom*,nsIMutableArray*)
Code Size: 42
void nsCoreUtils::GetElementsHavingIDRefsAttr(nsIContent*,nsIContent*,nsIAtom*,nsIArray**)
Code Size: 0? Really?
nsresult nsRelUtils::AddTargetFromChildrenHavingIDRefsAttr(PRUint32,nsIAccessibleRelation**,nsIContent*,nsIContent*,nsIAtom*)
Code Size: 52
already_AddRefed nsAccUtils::QueryAccessibleTable(nsIAccessibleTable*)
Code Size: 7
already_AddRefed nsCoreUtils::GetLastSensibleColumn(nsITreeBoxObject*)
Code Size: 40
PRBool nsFontSizeTextAttr::GetValueFor(nsIDOMElement*,nscoord*)
Code Size: 8
PRBool nsBGColorTextAttr::GetValueFor(nsIDOMElement*,nscolor*)
Code Size: 7
PRBool nsFontWeightTextAttr::GetValueFor(nsIDOMElement*,PRInt32*)
Code Size: 8
Note: A number of calls to GetValueFor functions are made where the second parameter has generic type ie T blah.
Path info: GetValue calls nsCSSTextAttr::Format
PRBool nsTextAttr::GetValue(nsAString_internal&,int)
To verify run this search then grep for all lines that contain at least two commas
Code Size: 26
Note: Must also remove from nsITextAttr
These are too difficult too verify:
void nsCSSTextAttr::Format(const nsAutoString&,nsAString_internal&)
Code Size: 3
void nsTextAttr::Format(const nsAutoString&,nsAString_internal&)
Code Size: 0
void nsLangTextAttr::Format(const nsAutoString&,nsAString_internal&)
Code Size: 7
embedding/components/windowwatcher
nsIScriptGlobalObject* nsWWJSUtils::GetStaticScriptGlobal(JSContext*,JSObject*)
Declaration Definition MXR Search
Code Size: 45, Static method
nsIScriptContext* nsWWJSUtils::GetStaticScriptContext(JSContext*,JSObject*)
Declaration Definition MXR Search
Code Size: 10, Static method
modules/libpref
nsresult PREF_GetCharPref(const char*,char*,int*,PRBool)
Code Size: 47
gfx/thebes/public
Path info: MapCharToGlyph calls MapCharToGlyphFormat4
PRUint32 gfxFontUtils::MapCharToGlyphFormat4(const PRUint8*,PRUnichar)
Declaration Definition MXR Search
Code Size: 92, Static method, class marked THEBES_API
PRUint32 gfxFontUtils::MapCharToGlyph(PRUint8*,PRUint32,PRUnichar)
Declaration Definition MXR Search
Code Size: 11, Static method, class marked THEBES_API
gfx/src/thebes
Path info: GetTextDimensions calls GetTextDimensionsInternal
nsresult nsThebesRenderingContext::GetTextDimensions(const PRUnichar*,PRInt32,PRInt32,PRInt32*,PRInt32,nsTextDimensions&,PRInt32&,nsTextDimensions&,PRInt32*)
Code Size: 56
nsresult nsThebesRenderingContext::GetTextDimensionsInternal(const PRUnichar*,PRInt32,PRInt32,PRInt32*,PRInt32,nsTextDimensions&,PRInt32&,nsTextDimensions&,PRInt32*)
Code Size: 2
Note: The 9 argument versions of these functions are not called. The same functions may be removed from nsIThebesFontMetrics, nsThebesFontMetrics and nsIThebesRenderingContext
nsresult nsThebesRenderingContext::DrawEllipse(const nsRect&)
Code Size: 10
Note: 1-arg func never used. Must be removed from nsIThebesRenderingContext as well
modules/libpr0n
PRUint32 imgFrame::GetImageBytesPerRow()
Declaration Definition MXR Search
Code Size: 11
PRInt32 imgFrame::GetHeight()
Declaration Definition MXR Search (Dead, but a pain to check)
Code Size: 2
PRInt32 imgFrame::GetWidth()
Declaration Definition MXR Search (Dead, but a pain to check)
Code Size: 2
PRInt32 imgFrame::GetY()
Declaration Definition MXR Search (impossible to check)
Code Size: 2
PRInt32 imgFrame::GetX()
Declaration Definition MXR Search (impossible to check)
Code Size: 2
editor
nsresult nsHTMLCSSUtils::RemoveCSSProperty(nsIDOMElement*,const nsAString_internal&)
Code Size: 28
security/manager/ssl
Path Info:
CommonAsyncVerifySignature is called by AsyncVerifySignature and AsyncVerifyDetachedSignature.
nsresult nsCMSMessage::CommonAsyncVerifySignature(nsISMimeVerificationListener*,unsigned char*,PRUint32)
Code Size: 43
nsresult nsCMSMessage::AsyncVerifyDetachedSignature(nsISMimeVerificationListener*,unsigned char*,PRUint32)
Code Size: 6
nsresult nsCMSMessage::AsyncVerifySignature(nsISMimeVerificationListener*)
Code Size: 3
Also Note: AsyncVerifySignature is the only caller of these two operators in mozilla/xpcom/glue:
nsCOMPtr& nsCOMPtr::operator=(nsICMSMessage*)
Code Size: 5
nsCOMPtr& nsCOMPtr::operator=(nsISMimeVerificationListener*)
Code Size: 5
intl
nsresult nsCaseConversionImp2::ToTitle(const PRUnichar*,PRUnichar*,PRUint32,PRBool)
Code Size: 42
Note: Must also be removed from nsICaseConversion
PRUint16* MapperToCCMap(nsICharRepresentable*)
Code Size: 15
void nsBufferDecoderSupport::DoubleBuffer()
Code Size: 19
nsresult nsDetectionAdaptor::ProcessTokens()
Code Size: 2
nsresult nsDetectionAdaptor::WillAddToken(CToken&)
Code Size: 2
Note: ProcessTokens and WillAddTokens must be removed from nsIParserFilter as well.
nsDebugDetector::nsDebugDetector(nsDebugDetectorSel)
Code Size: 10
dom
nsresult nsIScriptGlobalObject::HandleScriptError(nsScriptErrorEvent*,nsEventStatus*)
Code Size: 3
parser
void nsCParserNode::SetGenericState(PRBool)
Code Size: 3
PRBool nsCParserNode::GetGenericState()
Code Size: 3
const nsAString_internal& nsCParserNode::GetTagName()
Code Size: 3
void nsCParserNode::GetSource(nsString&)
Code Size: 22
void nsCParserStartNode::GetSource(nsString&)
Code Size: 35
Note: pure virtual declarations of SetGenericState, GetGenericState, GetTagName, and GetSource must be removed from nsIParserNode as well. Although tough to check, all one argument GetSource methods (that are used) belong to classes not derived from nsIParserNode.
Path Info: nsDTDContext::PopEntry() calls nsEntryStack::PopEntry()
nsTagEntry* nsEntryStack::PopEntry()
Code Size: 7
nsTagEntry* nsDTDContext::PopEntry()
Code Size: 7
nsCParserNode* nsDTDContext::PopStyle()
Code Size: 18
nsTagEntry* nsDTDContext::LastEntry()
Code Size: 6
nsHTMLTag nsEntryStack::First()
Code Size: 7
nsHTMLTag nsDTDContext::First()
Code Size: 4
Note: First is impossible to verify using MXR but the likelihood of a false positive is low here (since the method is non-virtual and non-static)
ipc
bool mozilla::ipc::GeckoChildProcessHost::AsyncLaunch(vector)
Code Size: 17
widget
PRBool confirm_overwrite_file(GtkWidget*,nsILocalFile*)
Code Size: 95
nsresult nsDeviceContextSpecGTK::GetPrintMethod(PrintMethod&)
Code Size: 4
void nsPrinterFeatures::SetMultipleConcurrentDeviceContextsSupported(PRBool)
Code Size: 2
nsCursor nsBaseWidget::GetCursor()
Code Size: 2
Note: Must also be removed from nsIWidget.
extensions
nsresult nsCyrXPCOMStringDetector::DoIt(const char*,PRUint32,const char**,nsDetectionConfident&)
Code Size: 19
nsresult nsXPCOMStringDetector::DoIt(const char*,PRUint32,const char**,nsDetectionConfident&)
Code Size: 32
Bugs/Strangeness
layout/xul
void nsBox::CoordNeedsRecalc(PRInt32&)
Code Size: 2
This is declared in the header here as taking an ncoord& parameter however it is defined here as taking PRInt32&. This could be problematic if NS_COORD_IS_FLOAT is defined.