The review from Bug 640711, comment 58 listed a number of cleanup tasks for JSONClass.cpp. Some of those cleanup items happened, but not all, and it was important to tie things up for Serrano than to put in some of the suggested items. Plus the code should get a post-land super-review, but I don't want to request that until I have done the cleanup. (I thought the cleanup would have happened already but then Bug 652200 blew up in my face.) This bug is for that cleanup task.
A discussion with Tommy pointed out that among the cleanup tasks, I definitely need to properly document: 1. the motivation for AutoDestructingAtomArray (answer: avoid stack overflow when recurring on object structure) 2. explain how its switch from stack-allocation to FixedMalloc-allocation avoids memory leaks when AS3 call backs throw exceptions (answer: every such callback is wrapped by TryAS3Call, and when a callback throws an exception, we unroll the stack before rethrowing it) 3. explain how storing Atoms in an untraced FixedMalloc-allocated array is sound (current answer: the property names should already being referred to by the object being traversed, held in the live local variable 'value', so they should not be collected. But it would be much better to come up with some tests that aggressively leverage the AS3 callbacks to make interior nodes in the object graph in the midst of the traversal.)
Priority: -- → P3
Target Milestone: --- → Q1 12 - Brannan
Submitted to AVM (v11) branch in CL 1108591.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
changeset: 7539:90ecd685dbfd user: Felix Klock II <email@example.com> summary: Bug 653255: more documentation for JSONClass.cpp (r=fklockii). http://hg.mozilla.org/tamarin-redux/rev/90ecd685dbfd
You need to log in before you can comment on or make changes to this bug.