![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qv4internalclass_p.h>
Classes | |
struct | IndexAndAttribute |
Public Types | |
enum | Flag { NotExtensible = 1 << 0 , Sealed = 1 << 1 , Frozen = 1 << 2 , UsedAsProto = 1 << 3 , Locked = 1 << 4 } |
enum | { MaxRedundantTransitions = 255 } |
typedef InternalClassTransition | Transition |
Static Public Member Functions | |
static void | addMember (QV4::Object *object, PropertyKey id, PropertyAttributes data, InternalClassEntry *entry) |
static void | changeMember (QV4::Object *object, PropertyKey id, PropertyAttributes data, InternalClassEntry *entry=nullptr) |
static void | removeMember (QV4::Object *object, PropertyKey identifier) |
static void | markObjects (Heap::Base *ic, MarkStack *stack) |
Static Public Member Functions inherited from QV4::Heap::Base | |
static void | markObjects (Base *, MarkStack *) |
Public Attributes | |
ExecutionEngine * | engine |
const VTable * | vtable |
quintptr | protoId |
Heap::Object * | prototype |
InternalClass * | parent |
PropertyHash | propertyTable |
SharedInternalClassData< PropertyKey > | nameMap |
SharedInternalClassData< PropertyAttributes > | propertyData |
QVarLengthArray< Transition, 1 > | transitions |
uint | size |
quint8 | numRedundantTransitions |
quint8 | flags |
Public Attributes inherited from QV4::Heap::Base | |
Pointer< InternalClass *, 0 > | internalClass |
Friends | |
struct | ::QV4::ExecutionEngine |
Definition at line 317 of file qv4internalclass_p.h.
Definition at line 337 of file qv4internalclass_p.h.
anonymous enum |
Enumerator | |
---|---|
MaxRedundantTransitions |
Definition at line 325 of file qv4internalclass_p.h.
Enumerator | |
---|---|
NotExtensible | |
Sealed | |
Frozen | |
UsedAsProto | |
Locked |
Definition at line 318 of file qv4internalclass_p.h.
Heap::InternalClass * QV4::Heap::InternalClass::addMember | ( | PropertyKey | identifier, |
PropertyAttributes | data, | ||
InternalClassEntry * | entry = nullptr ) |
Definition at line 575 of file qv4internalclass.cpp.
References findEntry(), and QV4::PropertyKey::isStringOrSymbol().
|
static |
Definition at line 567 of file qv4internalclass.cpp.
Heap::InternalClass * QV4::Heap::InternalClass::asProtoClass | ( | ) |
Definition at line 746 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, QV4::PropertyKey::invalid(), isUsedAsProto(), QV4::InternalClassTransition::lookup, lookupOrInsertTransition(), QV4::InternalClassTransition::ProtoClass, and UsedAsProto.
InternalClass * QV4::Heap::InternalClass::canned | ( | ) |
Definition at line 714 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), and engine.
Heap::InternalClass * QV4::Heap::InternalClass::changeMember | ( | PropertyKey | identifier, |
PropertyAttributes | data, | ||
InternalClassEntry * | entry = nullptr ) |
Definition at line 427 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, findEntry(), QV4::InternalClassTransition::lookup, and lookupOrInsertTransition().
|
static |
Definition at line 304 of file qv4internalclass.cpp.
References QV4::PropertyKey::isStringOrSymbol().
|
inline |
Definition at line 467 of file qv4internalclass_p.h.
|
inline |
Definition at line 462 of file qv4internalclass_p.h.
InternalClass * QV4::Heap::InternalClass::cryopreserved | ( | ) |
Definition at line 722 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), and engine.
void QV4::Heap::InternalClass::destroy | ( | ) |
Definition at line 271 of file qv4internalclass.cpp.
References QV4::PropertyHash::~PropertyHash(), engine, parent, and propertyTable.
|
inline |
Definition at line 375 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, QV4::PropertyHash::Entry::setterIndex, and size.
|
inline |
Definition at line 364 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, and size.
Referenced by addMember(), changeMember(), and removeMember().
|
inline |
Definition at line 395 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, and size.
|
inline |
Definition at line 409 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, QV4::PropertyHash::Entry::setterIndex, and size.
Heap::InternalClass * QV4::Heap::InternalClass::frozen | ( | ) |
Definition at line 682 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, Frozen, QV4::InternalClassTransition::Frozen, QV4::PropertyKey::invalid(), isFrozen(), QV4::InternalClassTransition::lookup, and lookupOrInsertTransition().
|
inline |
Definition at line 428 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, and size.
void QV4::Heap::InternalClass::init | ( | ExecutionEngine * | engine | ) |
Definition at line 222 of file qv4internalclass.cpp.
References QV4::PropertyHash::PropertyHash(), engine, propertyTable, and vtable.
void QV4::Heap::InternalClass::init | ( | Heap::InternalClass * | other | ) |
Definition at line 246 of file qv4internalclass.cpp.
References QV4::PropertyHash::PropertyHash(), engine, parent, propertyTable, prototype, and vtable.
|
inline |
Definition at line 345 of file qv4internalclass_p.h.
Referenced by nonExtensible().
|
inline |
Definition at line 347 of file qv4internalclass_p.h.
Referenced by frozen(), isImplicitlyFrozen(), and sealed().
bool QV4::Heap::InternalClass::isImplicitlyFrozen | ( | ) | const |
Definition at line 730 of file qv4internalclass.cpp.
References isFrozen().
|
inline |
Definition at line 349 of file qv4internalclass_p.h.
Referenced by locked().
|
inline |
Definition at line 346 of file qv4internalclass_p.h.
Referenced by sealed().
|
inline |
Definition at line 348 of file qv4internalclass_p.h.
Referenced by asProtoClass(), and updateProtoUsage().
ReturnedValue QV4::Heap::InternalClass::keyAt | ( | uint | index | ) | const |
Definition at line 293 of file qv4internalclass.cpp.
References QV4::PropertyKey::asArrayIndex(), QV4::PropertyKey::isArrayIndex(), and QV4::PropertyKey::isStringOrSymbol().
InternalClass * QV4::Heap::InternalClass::locked | ( | ) |
Definition at line 547 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, QV4::PropertyKey::invalid(), isLocked(), Locked, QV4::InternalClassTransition::Locked, QV4::InternalClassTransition::lookup, and lookupOrInsertTransition().
InternalClassTransition & QV4::Heap::InternalClass::lookupOrInsertTransition | ( | const InternalClassTransition & | t | ) |
Definition at line 313 of file qv4internalclass.cpp.
Referenced by asProtoClass(), changeMember(), frozen(), locked(), nonExtensible(), and sealed().
|
static |
Definition at line 786 of file qv4internalclass.cpp.
Heap::InternalClass * QV4::Heap::InternalClass::nonExtensible | ( | ) |
Definition at line 527 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, QV4::PropertyKey::invalid(), isExtensible(), QV4::InternalClassTransition::lookup, lookupOrInsertTransition(), NotExtensible, and QV4::InternalClassTransition::NotExtensible.
|
static |
Definition at line 633 of file qv4internalclass.cpp.
References findEntry().
Heap::InternalClass * QV4::Heap::InternalClass::sealed | ( | ) |
Definition at line 650 of file qv4internalclass.cpp.
References QV4::Scope::Scope(), engine, QV4::PropertyKey::invalid(), isFrozen(), isSealed(), QV4::InternalClassTransition::lookup, lookupOrInsertTransition(), Sealed, and QV4::InternalClassTransition::Sealed.
void QV4::Heap::InternalClass::updateProtoUsage | ( | Heap::Object * | o | ) |
Definition at line 777 of file qv4internalclass.cpp.
References isUsedAsProto(), prototype, and QV4::Heap::updateProtoUsage().
|
inline |
Definition at line 441 of file qv4internalclass_p.h.
References QV4::PropertyHash::Entry::index, QV4::PropertyKey::isStringOrSymbol(), QV4::PropertyHash::lookup(), propertyTable, and size.
|
friend |
Definition at line 483 of file qv4internalclass_p.h.
ExecutionEngine* QV4::Heap::InternalClass::engine |
Definition at line 327 of file qv4internalclass_p.h.
Referenced by asProtoClass(), canned(), changeMember(), QV4::Heap::cleanInternalClass(), cryopreserved(), destroy(), frozen(), init(), init(), locked(), nonExtensible(), sealed(), and QV4::Heap::updateProtoUsage().
quint8 QV4::Heap::InternalClass::flags |
Definition at line 343 of file qv4internalclass_p.h.
SharedInternalClassData<PropertyKey> QV4::Heap::InternalClass::nameMap |
Definition at line 334 of file qv4internalclass_p.h.
quint8 QV4::Heap::InternalClass::numRedundantTransitions |
Definition at line 342 of file qv4internalclass_p.h.
InternalClass* QV4::Heap::InternalClass::parent |
Definition at line 331 of file qv4internalclass_p.h.
Referenced by destroy(), init(), and markObjects().
SharedInternalClassData<PropertyAttributes> QV4::Heap::InternalClass::propertyData |
Definition at line 335 of file qv4internalclass_p.h.
PropertyHash QV4::Heap::InternalClass::propertyTable |
Definition at line 333 of file qv4internalclass_p.h.
Referenced by QV4::Heap::addDummyEntry(), destroy(), find(), findEntry(), findValueOrGetter(), findValueOrSetter(), indexOfValueOrGetter(), init(), init(), and verifyIndex().
quintptr QV4::Heap::InternalClass::protoId |
Definition at line 329 of file qv4internalclass_p.h.
Heap::Object* QV4::Heap::InternalClass::prototype |
Definition at line 330 of file qv4internalclass_p.h.
Referenced by init(), markObjects(), updateProtoUsage(), and QV4::Heap::updateProtoUsage().
uint QV4::Heap::InternalClass::size |
Definition at line 341 of file qv4internalclass_p.h.
Referenced by find(), findEntry(), findValueOrGetter(), findValueOrSetter(), indexOfValueOrGetter(), and verifyIndex().
QVarLengthArray<Transition, 1> QV4::Heap::InternalClass::transitions |
Definition at line 338 of file qv4internalclass_p.h.
const VTable* QV4::Heap::InternalClass::vtable |
Definition at line 328 of file qv4internalclass_p.h.
Referenced by QV4::MemoryManager::allocManaged(), init(), and init().