mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 581589 - TM: add defaultCompartment to compartments array (r=gal)
This commit is contained in:
parent
8bb1230898
commit
e265b8c778
@ -568,7 +568,8 @@ JSRuntime::init(uint32 maxbytes)
|
||||
#endif
|
||||
|
||||
if (!(defaultCompartment = new JSCompartment(this)) ||
|
||||
!defaultCompartment->init()) {
|
||||
!defaultCompartment->init() ||
|
||||
!compartments.append(defaultCompartment)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -657,8 +658,10 @@ JSRuntime::~JSRuntime()
|
||||
JS_DESTROY_LOCK(debuggerLock);
|
||||
#endif
|
||||
propertyTree.finish();
|
||||
if (defaultCompartment)
|
||||
delete defaultCompartment;
|
||||
/* Delete all remaining Compartments. Ideally only the defaultCompartment should be left. */
|
||||
for (JSCompartment **c = compartments.begin(); c != compartments.end(); ++c)
|
||||
delete *c;
|
||||
compartments.clear();
|
||||
}
|
||||
|
||||
JS_PUBLIC_API(JSRuntime *)
|
||||
|
@ -2965,6 +2965,10 @@ SweepCompartments(JSContext *cx)
|
||||
JSCompartment **read = rt->compartments.begin();
|
||||
JSCompartment **end = rt->compartments.end();
|
||||
JSCompartment **write = read;
|
||||
|
||||
/* Delete defaultCompartment only during runtime shutdown */
|
||||
rt->defaultCompartment->marked = true;
|
||||
|
||||
while (read < end) {
|
||||
JSCompartment *compartment = (*read++);
|
||||
if (compartment->marked) {
|
||||
|
Loading…
Reference in New Issue
Block a user