mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 972712 (part 5) - Add BaseShape::clasp(). r=till.
--HG-- extra : rebase_source : 7eab6753c6c5b248446783132f84b07460aefef6
This commit is contained in:
parent
0f9f39e3f1
commit
fb405e0a1f
@ -551,7 +551,7 @@ struct TypeObject {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct BaseShape {
|
struct BaseShape {
|
||||||
const js::Class *clasp;
|
const js::Class *clasp_;
|
||||||
JSObject *parent;
|
JSObject *parent;
|
||||||
JSObject *_1;
|
JSObject *_1;
|
||||||
JSCompartment *compartment;
|
JSCompartment *compartment;
|
||||||
|
@ -1438,7 +1438,7 @@ StackBaseShape::hash(const StackBaseShape *base)
|
|||||||
StackBaseShape::match(UnownedBaseShape *key, const StackBaseShape *lookup)
|
StackBaseShape::match(UnownedBaseShape *key, const StackBaseShape *lookup)
|
||||||
{
|
{
|
||||||
return key->flags == lookup->flags
|
return key->flags == lookup->flags
|
||||||
&& key->clasp == lookup->clasp
|
&& key->clasp_ == lookup->clasp
|
||||||
&& key->parent == lookup->parent
|
&& key->parent == lookup->parent
|
||||||
&& key->metadata == lookup->metadata
|
&& key->metadata == lookup->metadata
|
||||||
&& key->rawGetter == lookup->rawGetter
|
&& key->rawGetter == lookup->rawGetter
|
||||||
|
@ -581,7 +581,7 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const Class *clasp; /* Class of referring object. */
|
const Class *clasp_; /* Class of referring object. */
|
||||||
HeapPtrObject parent; /* Parent of referring object. */
|
HeapPtrObject parent; /* Parent of referring object. */
|
||||||
HeapPtrObject metadata; /* Optional holder of metadata about
|
HeapPtrObject metadata; /* Optional holder of metadata about
|
||||||
* the referring object. */
|
* the referring object. */
|
||||||
@ -618,7 +618,7 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
{
|
{
|
||||||
JS_ASSERT(!(objectFlags & ~OBJECT_FLAG_MASK));
|
JS_ASSERT(!(objectFlags & ~OBJECT_FLAG_MASK));
|
||||||
mozilla::PodZero(this);
|
mozilla::PodZero(this);
|
||||||
this->clasp = clasp;
|
this->clasp_ = clasp;
|
||||||
this->parent = parent;
|
this->parent = parent;
|
||||||
this->metadata = metadata;
|
this->metadata = metadata;
|
||||||
this->flags = objectFlags;
|
this->flags = objectFlags;
|
||||||
@ -631,7 +631,7 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
{
|
{
|
||||||
JS_ASSERT(!(objectFlags & ~OBJECT_FLAG_MASK));
|
JS_ASSERT(!(objectFlags & ~OBJECT_FLAG_MASK));
|
||||||
mozilla::PodZero(this);
|
mozilla::PodZero(this);
|
||||||
this->clasp = clasp;
|
this->clasp_ = clasp;
|
||||||
this->parent = parent;
|
this->parent = parent;
|
||||||
this->metadata = metadata;
|
this->metadata = metadata;
|
||||||
this->flags = objectFlags;
|
this->flags = objectFlags;
|
||||||
@ -654,7 +654,7 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
~BaseShape();
|
~BaseShape();
|
||||||
|
|
||||||
BaseShape &operator=(const BaseShape &other) {
|
BaseShape &operator=(const BaseShape &other) {
|
||||||
clasp = other.clasp;
|
clasp_ = other.clasp_;
|
||||||
parent = other.parent;
|
parent = other.parent;
|
||||||
metadata = other.metadata;
|
metadata = other.metadata;
|
||||||
flags = other.flags;
|
flags = other.flags;
|
||||||
@ -679,6 +679,8 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Class *clasp() const { return clasp_; }
|
||||||
|
|
||||||
bool isOwned() const { return !!(flags & OWNED_SHAPE); }
|
bool isOwned() const { return !!(flags & OWNED_SHAPE); }
|
||||||
|
|
||||||
bool matchesGetterSetter(PropertyOp rawGetter, StrictPropertyOp rawSetter) const {
|
bool matchesGetterSetter(PropertyOp rawGetter, StrictPropertyOp rawSetter) const {
|
||||||
@ -760,7 +762,7 @@ class BaseShape : public gc::BarrieredCell<BaseShape>
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
static void staticAsserts() {
|
static void staticAsserts() {
|
||||||
JS_STATIC_ASSERT(offsetof(BaseShape, clasp) == offsetof(js::shadow::BaseShape, clasp));
|
JS_STATIC_ASSERT(offsetof(BaseShape, clasp_) == offsetof(js::shadow::BaseShape, clasp_));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -817,7 +819,7 @@ struct StackBaseShape
|
|||||||
|
|
||||||
explicit StackBaseShape(BaseShape *base)
|
explicit StackBaseShape(BaseShape *base)
|
||||||
: flags(base->flags & BaseShape::OBJECT_FLAG_MASK),
|
: flags(base->flags & BaseShape::OBJECT_FLAG_MASK),
|
||||||
clasp(base->clasp),
|
clasp(base->clasp_),
|
||||||
parent(base->parent),
|
parent(base->parent),
|
||||||
metadata(base->metadata),
|
metadata(base->metadata),
|
||||||
rawGetter(nullptr),
|
rawGetter(nullptr),
|
||||||
@ -856,7 +858,7 @@ inline
|
|||||||
BaseShape::BaseShape(const StackBaseShape &base)
|
BaseShape::BaseShape(const StackBaseShape &base)
|
||||||
{
|
{
|
||||||
mozilla::PodZero(this);
|
mozilla::PodZero(this);
|
||||||
this->clasp = base.clasp;
|
this->clasp_ = base.clasp;
|
||||||
this->parent = base.parent;
|
this->parent = base.parent;
|
||||||
this->metadata = base.metadata;
|
this->metadata = base.metadata;
|
||||||
this->flags = base.flags;
|
this->flags = base.flags;
|
||||||
@ -1030,7 +1032,7 @@ class Shape : public gc::BarrieredCell<Shape>
|
|||||||
};
|
};
|
||||||
|
|
||||||
const Class *getObjectClass() const {
|
const Class *getObjectClass() const {
|
||||||
return base()->clasp;
|
return base()->clasp_;
|
||||||
}
|
}
|
||||||
JSObject *getObjectParent() const { return base()->parent; }
|
JSObject *getObjectParent() const { return base()->parent; }
|
||||||
JSObject *getObjectMetadata() const { return base()->metadata; }
|
JSObject *getObjectMetadata() const { return base()->metadata; }
|
||||||
@ -1481,7 +1483,7 @@ struct StackShape
|
|||||||
uint32_t maybeSlot() const { return slot_; }
|
uint32_t maybeSlot() const { return slot_; }
|
||||||
|
|
||||||
uint32_t slotSpan() const {
|
uint32_t slotSpan() const {
|
||||||
uint32_t free = JSSLOT_FREE(base->clasp);
|
uint32_t free = JSSLOT_FREE(base->clasp_);
|
||||||
return hasMissingSlot() ? free : (maybeSlot() + 1);
|
return hasMissingSlot() ? free : (maybeSlot() + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user