The weekly report for week 24.
Read feedback on my plan. Decided to refactor SinkContext
after all.
Refactored SinkContext
out of
nsHTMLContentSink.cpp.
Realized that it does not make sense.
Reverted to the earlier plan.
Updated the tree.
Reread the HTML content sink code (on paper) and highlighted
stuff that needs to go to nsContentSink
and stuff that
I need to imitate in the XML content sink.
Changed C-style bitfield flags to C++ style to make it easier to move individual flags up the class tree without mask conflicts.
Installed the CDT for Eclipse.
Prepared the build for CDT.
Changing build options is a huge time sink. A full build takes about 50 minutes if it is successful.
Got the build going in Eclipse or so I thought.
Ordered 2 GB more RAM.
Turned on the full C++ indexer. This was a mistake. Have to let the indexing happen at night.
There’s some bad craziness going on with CDT’s memory usage. My guess is that the indexer does bad stuff if it starts blocking while waiting for the build to complete.
Really got the build going.
Frustration level at the maximum in this month so far due to CDT setup.
Started to see the benefits of Eclipse. Sadly, the benefits aren’t as good an the CDT side as they are on the JDT side.
Hoisted stuff from HTMLContentSink
to
nsContentSink
.
Learned more about intermodule dependencies and makefiles.
Continued hoisting stuff.
Had a runnable build for a change. So far so good.
Note to self: NS_INTERFACE_MAP_ENTRY_AMBIGUOUS
Spent 1.5 hours learning that interfaces in Mozilla don’t work the way I expected, learning how to do the expected kind of interfaces in C++, learning why that is prohibited in Mozilla and falling back to my inelegant plan B. In general, any time I try to do something elegantly in the hope of passing review later, I burn 1.5 hours learning why the elegant way doesn’t work. :-( Usually the reason is XPCOM or legacy compilers on something like HP-UX.
Perhaps I should stop worrying about elegance and getting and passing review. The code I am refactoring was written before the current code review regime was established. And it shows. :-(