Skip to content

Commit 17e5024

Browse files
committed
2011-04-15 Oliver Hunt <oliver@apple.com>
GC allocate Structure https://bugs.webkit.org/show_bug.cgi?id=58483 Rolling r83894 r83827 r83810 r83809 r83808 back in with a workaround for the gcc bug seen by the gtk bots Canonical link: https://commits.webkit.org/73793@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@84052 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 1ff5216 commit 17e5024

191 files changed

Lines changed: 1715 additions & 1106 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LayoutTests/ChangeLog

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
2011-04-15 Oliver Hunt <oliver@apple.com>
2+
3+
GC allocate Structure
4+
https://bugs.webkit.org/show_bug.cgi?id=58483
5+
6+
Rolling r83894 r83827 r83810 r83809 r83808 back in with
7+
a workaround for the gcc bug seen by the gtk bots
8+
9+
* fast/dom/gc-10.html:
10+
111
2011-04-15 Andreas Kling <kling@webkit.org>
212

313
Unreviewed, remove a Qt-specific expectation that's no longer needed.

LayoutTests/fast/dom/gc-10.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
if (window.GCController)
2121
{
2222
GCController.collect();
23+
window.frames.myframe.location.reload(true);
2324
before = GCController.getJSObjectCount();
2425

2526
window.frames.myframe.location.reload(true);

Source/JavaScriptCore/API/JSCallbackConstructor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ namespace JSC {
3838

3939
const ClassInfo JSCallbackConstructor::s_info = { "CallbackConstructor", &JSObjectWithGlobalObject::s_info, 0, 0 };
4040

41-
JSCallbackConstructor::JSCallbackConstructor(JSGlobalObject* globalObject, NonNullPassRefPtr<Structure> structure, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback)
41+
JSCallbackConstructor::JSCallbackConstructor(JSGlobalObject* globalObject, Structure* structure, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback)
4242
: JSObjectWithGlobalObject(globalObject, structure)
4343
, m_class(jsClass)
4444
, m_callback(callback)

Source/JavaScriptCore/API/JSCallbackConstructor.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ namespace JSC {
3333

3434
class JSCallbackConstructor : public JSObjectWithGlobalObject {
3535
public:
36-
JSCallbackConstructor(JSGlobalObject*, NonNullPassRefPtr<Structure>, JSClassRef, JSObjectCallAsConstructorCallback);
36+
JSCallbackConstructor(JSGlobalObject*, Structure*, JSClassRef, JSObjectCallAsConstructorCallback);
3737
virtual ~JSCallbackConstructor();
3838
JSClassRef classRef() const { return m_class; }
3939
JSObjectCallAsConstructorCallback callback() const { return m_callback; }
4040
static const ClassInfo s_info;
4141

42-
static PassRefPtr<Structure> createStructure(JSGlobalData& globalData, JSValue proto)
42+
static Structure* createStructure(JSGlobalData& globalData, JSValue proto)
4343
{
4444
return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
4545
}

Source/JavaScriptCore/API/JSCallbackFunction.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class JSCallbackFunction : public InternalFunction {
3939

4040
// InternalFunction mish-mashes constructor and function behavior -- we should
4141
// refactor the code so this override isn't necessary
42-
static PassRefPtr<Structure> createStructure(JSGlobalData& globalData, JSValue proto)
42+
static Structure* createStructure(JSGlobalData& globalData, JSValue proto)
4343
{
4444
return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info);
4545
}

Source/JavaScriptCore/API/JSCallbackObject.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ struct JSCallbackObjectData : WeakHandleOwner {
117117
template <class Base>
118118
class JSCallbackObject : public Base {
119119
public:
120-
JSCallbackObject(ExecState*, JSGlobalObject*, NonNullPassRefPtr<Structure>, JSClassRef, void* data);
121-
JSCallbackObject(JSClassRef, NonNullPassRefPtr<Structure>);
120+
JSCallbackObject(ExecState*, JSGlobalObject*, Structure*, JSClassRef, void* data);
121+
JSCallbackObject(JSGlobalData&, JSClassRef, Structure*);
122122

123123
void setPrivate(void* data);
124124
void* getPrivate();
@@ -128,7 +128,7 @@ class JSCallbackObject : public Base {
128128
JSClassRef classRef() const { return m_callbackObjectData->jsClass; }
129129
bool inherits(JSClassRef) const;
130130

131-
static PassRefPtr<Structure> createStructure(JSGlobalData& globalData, JSValue proto)
131+
static Structure* createStructure(JSGlobalData& globalData, JSValue proto)
132132
{
133133
return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), Base::AnonymousSlotCount, &s_info);
134134
}

Source/JavaScriptCore/API/JSCallbackObjectFunctions.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ inline JSCallbackObject<Base>* JSCallbackObject<Base>::asCallbackObject(JSValue
5050
}
5151

5252
template <class Base>
53-
JSCallbackObject<Base>::JSCallbackObject(ExecState* exec, JSGlobalObject* globalObject, NonNullPassRefPtr<Structure> structure, JSClassRef jsClass, void* data)
53+
JSCallbackObject<Base>::JSCallbackObject(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef jsClass, void* data)
5454
: Base(globalObject, structure)
5555
, m_callbackObjectData(adoptPtr(new JSCallbackObjectData(data, jsClass)))
5656
{
@@ -61,8 +61,8 @@ JSCallbackObject<Base>::JSCallbackObject(ExecState* exec, JSGlobalObject* global
6161
// Global object constructor.
6262
// FIXME: Move this into a separate JSGlobalCallbackObject class derived from this one.
6363
template <class Base>
64-
JSCallbackObject<Base>::JSCallbackObject(JSClassRef jsClass, NonNullPassRefPtr<Structure> structure)
65-
: Base(structure)
64+
JSCallbackObject<Base>::JSCallbackObject(JSGlobalData& globalData, JSClassRef jsClass, Structure* structure)
65+
: Base(globalData, structure)
6666
, m_callbackObjectData(adoptPtr(new JSCallbackObjectData(0, jsClass)))
6767
{
6868
ASSERT(Base::inherits(&s_info));

Source/JavaScriptCore/API/JSContextRef.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ JSGlobalContextRef JSGlobalContextCreateInGroup(JSContextGroupRef group, JSClass
9797
return JSGlobalContextRetain(toGlobalRef(globalObject->globalExec()));
9898
}
9999

100-
JSGlobalObject* globalObject = new (globalData.get()) JSCallbackObject<JSGlobalObject>(globalObjectClass, JSCallbackObject<JSGlobalObject>::createStructure(*globalData, jsNull()));
100+
JSGlobalObject* globalObject = new (globalData.get()) JSCallbackObject<JSGlobalObject>(*globalData, globalObjectClass, JSCallbackObject<JSGlobalObject>::createStructure(*globalData, jsNull()));
101101
ExecState* exec = globalObject->globalExec();
102102
JSValue prototype = globalObjectClass->prototype(exec);
103103
if (!prototype)
@@ -141,9 +141,10 @@ void JSGlobalContextRelease(JSGlobalContextRef ctx)
141141
// it may release a lot of GC memory - run the garbage collector now.
142142
// * If there are more references remaining the the global object, then do nothing
143143
// (specifically that is more protects, which we assume come from other JSGlobalContextRefs).
144-
if (releasingContextGroup)
144+
if (releasingContextGroup) {
145+
globalData.clearBuiltinStructures();
145146
globalData.heap.destroy();
146-
else if (releasingGlobalObject)
147+
} else if (releasingGlobalObject)
147148
globalData.heap.collectAllGarbage();
148149

149150
globalData.deref();

0 commit comments

Comments
 (0)