Bug 966575 part 9 -- Remove unused type object r=sfink

This commit is contained in:
Nicholas D. Matsakis 2014-01-30 15:21:02 -05:00
parent ed6f437a3e
commit 91795bab2e
2 changed files with 1 additions and 18 deletions

View File

@ -364,20 +364,7 @@ TypeRepresentation::addToTableOrFree(JSContext *cx,
Rooted<GlobalObject*> global(cx, cx->global()); Rooted<GlobalObject*> global(cx, cx->global());
JSCompartment *comp = cx->compartment(); JSCompartment *comp = cx->compartment();
// First, try to create the TI type object to associate with this // First, attempt to add the type representation to the table.
// type representation. Since nothing is in the table yet, if this
// fails we can just return and pretend this whole endeavor was
// just a bad dream.
RootedObject proto(cx);
const Class *clasp;
if (!TypedObjectModuleObject::getSuitableClaspAndProto(cx, kind(), &clasp, &proto)) {
return nullptr;
}
RootedTypeObject typeObject(cx, comp->types.newTypeObject(cx, clasp, proto));
if (!typeObject)
return nullptr;
// Next, attempt to add the type representation to the table.
if (!comp->typeReprs.relookupOrAdd(p, this, this)) { if (!comp->typeReprs.relookupOrAdd(p, this, this)) {
js_ReportOutOfMemory(cx); js_ReportOutOfMemory(cx);
js_free(this); // do not finalize, not present in the table js_free(this); // do not finalize, not present in the table
@ -442,7 +429,6 @@ TypeRepresentation::addToTableOrFree(JSContext *cx,
} }
ownerObject_.init(ownerObject); ownerObject_.init(ownerObject);
typeObject_.init(typeObject);
return &*ownerObject; return &*ownerObject;
} }
@ -617,7 +603,6 @@ TypeRepresentation::mark(JSTracer *trace)
// contents. This is the typical scheme for marking objects. See // contents. This is the typical scheme for marking objects. See
// gc/Marking.cpp for more details. // gc/Marking.cpp for more details.
gc::MarkObject(trace, &ownerObject_, "typeRepresentation_ownerObject"); gc::MarkObject(trace, &ownerObject_, "typeRepresentation_ownerObject");
gc::MarkTypeObject(trace, &typeObject_, "typeRepresentation_typeObject");
} }
/*static*/ void /*static*/ void

View File

@ -141,7 +141,6 @@ class TypeRepresentation {
static void obj_finalize(js::FreeOp *fop, JSObject *object); static void obj_finalize(js::FreeOp *fop, JSObject *object);
HeapPtrObject ownerObject_; HeapPtrObject ownerObject_;
HeapPtrTypeObject typeObject_;
void traceFields(JSTracer *tracer); void traceFields(JSTracer *tracer);
public: public:
@ -149,7 +148,6 @@ class TypeRepresentation {
bool opaque() const { return opaque_; } bool opaque() const { return opaque_; }
bool transparent() const { return !opaque_; } bool transparent() const { return !opaque_; }
JSObject *ownerObject() const { return ownerObject_.get(); } JSObject *ownerObject() const { return ownerObject_.get(); }
types::TypeObject *typeObject() const { return typeObject_.get(); }
static bool isOwnerObject(JSObject &obj); static bool isOwnerObject(JSObject &obj);
static TypeRepresentation *fromOwnerObject(JSObject &obj); static TypeRepresentation *fromOwnerObject(JSObject &obj);