Closed Bug 1668238 Opened 5 years ago Closed 5 years ago

Move initialisation out of WellKnownParserAtoms_ROM to placate Eclipse's indexer

Categories

(Core :: JavaScript Engine, task)

task

Tracking

()

RESOLVED FIXED
83 Branch
Tracking Status
firefox83 --- fixed

People

(Reporter: anba, Assigned: anba)

Details

Attachments

(1 file)

Eclipse's indexer chokes on WellKnownParserAtoms_ROM's constructor. And because "ParserAtom.h" is (transitively) included in my files, the whole indexing process breaks down and needs multiple hours(!). Thankfully it looks like moving the initialisation for StaticParserAtomEntry<1> and StaticParserAtomEntry<2> into separate functions is enough to placate Eclipse.

The error log contains:

java.lang.IllegalStateException: Trying to set incomplete value
	at org.eclipse.cdt.internal.core.dom.parser.IntegralValue.setSubValue(IntegralValue.java:286)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalCompositeAccess.update(EvalCompositeAccess.java:53)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalReference.update(EvalReference.java:122)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalBinary.computeForFunctionCall(EvalBinary.java:494)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecExpressionStatement.executeForFunctionCall(ExecExpressionStatement.java:39)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUtil.executeStatement(EvalUtil.java:87)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecCompoundStatement.executeForFunctionCall(ExecCompoundStatement.java:59)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.evaluateFunctionBody(EvalFunctionCall.java:350)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.computeForFunctionCall(EvalFunctionCall.java:316)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecExpressionStatement.executeForFunctionCall(ExecExpressionStatement.java:39)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUtil.executeStatement(EvalUtil.java:87)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecCompoundStatement.executeForFunctionCall(ExecCompoundStatement.java:59)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUtil.executeStatement(EvalUtil.java:94)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecFor.executeForFunctionCall(ExecFor.java:45)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalUtil.executeStatement(EvalUtil.java:94)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExecCompoundStatement.executeForFunctionCall(ExecCompoundStatement.java:59)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.evaluateFunctionBody(EvalFunctionCall.java:350)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.computeForFunctionCall(EvalFunctionCall.java:316)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalConstructor.computeForFunctionCall(EvalConstructor.java:218)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalConstructor.getValue(EvalConstructor.java:144)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable.computeInitialValue(CPPVariable.java:271)
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable.getInitialValue(CPPVariable.java:248)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.resolveNames(PDOMWriter.java:441)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:284)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:1295)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:1107)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:910)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:572)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:164)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMRebuildTask.run(PDOMRebuildTask.java:94)
	at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:160)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Moving the initialisation into separate functions seems to workaround the Eclipse
indexer bug. I've verified with size -A dist/bin/js that the executable size
isn't negatively impacted by this change.

Pushed by ncsoregi@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a405b9663b93 Move StaticParserAtomEntry initialisation into separate functions to placate Eclipse. r=tcampbell
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 83 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: