Last Comment Bug 736229 - Stop storing expando objects in the wrapper cache
: Stop storing expando objects in the wrapper cache
Product: Core
Classification: Components
Component: DOM (show other bugs)
: Trunk
: All All
-- normal (vote)
: mozilla14
Assigned To: Peter Van der Beken [:peterv]
: Andrew Overholt [:overholt]
Depends on: 756073
  Show dependency treegraph
Reported: 2012-03-15 12:59 PDT by Peter Van der Beken [:peterv]
Modified: 2012-05-17 06:24 PDT (History)
2 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

v1 (19.70 KB, patch)
2012-03-15 13:22 PDT, Peter Van der Beken [:peterv]
jst: review+
Details | Diff | Splinter Review

Description User image Peter Van der Beken [:peterv] 2012-03-15 12:59:33 PDT
For the new proxy DOM list bindings we store expandos on a separate object. The proxy holds the expando object, and the wrapper cache holds the proxy. When the proxy gets collected we make the wrapper cache store the expando object. If a new proxy is created it is stored in the cache again and holds the expando object. Since the proxy stores no state it can be collected and recreated without losing expandos. This does complicate the wrapper cache quite a bit, and makes it hard to store the new (Paris) DOM bindings in the wrapper cache. So I'd like to make the wrapper cache always hold the proxy when it has expandos. This means that we have to make the hashtable that stores the expando objects (so XPConnect can mark them) store the proxy instead.
Comment 1 User image Peter Van der Beken [:peterv] 2012-03-15 13:22:27 PDT
Created attachment 606337 [details] [diff] [review]
Comment 2 User image Johnny Stenback (:jst, 2012-03-15 14:57:19 PDT
Comment on attachment 606337 [details] [diff] [review]

Looks good!
Comment 3 User image Peter Van der Beken [:peterv] 2012-03-16 08:20:42 PDT
Comment 4 User image Kyle Huey [:khuey] (Exited; not receiving bugmail, email if necessary) 2012-03-17 17:05:01 PDT

Note You need to log in before you can comment on or make changes to this bug.