|  | Qt 6.x
    The Qt SDK | 
#include <qv4internalclass_p.h>
 Inheritance diagram for QV4::Heap::InternalClass:
 Inheritance diagram for QV4::Heap::InternalClass: Collaboration diagram for QV4::Heap::InternalClass:
 Collaboration diagram for QV4::Heap::InternalClass:| 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 | 
| std::vector< Transition > | 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 297 of file qv4internalclass_p.h.
Definition at line 317 of file qv4internalclass_p.h.
| anonymous enum | 
| Enumerator | |
|---|---|
| MaxRedundantTransitions | |
Definition at line 305 of file qv4internalclass_p.h.
| Enumerator | |
|---|---|
| NotExtensible | |
| Sealed | |
| Frozen | |
| UsedAsProto | |
| Locked | |
Definition at line 298 of file qv4internalclass_p.h.
| Heap::InternalClass * QV4::Heap::InternalClass::addMember | ( | PropertyKey | identifier, | 
| PropertyAttributes | data, | ||
| InternalClassEntry * | entry = nullptr | ||
| ) | 
Definition at line 553 of file qv4internalclass.cpp.
References changeMember(), e, findEntry(), QV4::PropertyKey::isStringOrSymbol(), and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | static | 
Definition at line 538 of file qv4internalclass.cpp.
References changeMember(), e, QV4::Heap::Base::internalClass, and Q_ASSERT.
Referenced by QV4::ExecutionEngine::ExecutionEngine(), QV4::Object::insertMember(), and QV4::Function::updateInternalClass().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| Heap::InternalClass * QV4::Heap::InternalClass::asProtoClass | ( | ) | 
Definition at line 724 of file qv4internalclass.cpp.
References engine, flags, QV4::PropertyKey::invalid(), isUsedAsProto(), lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), QV4::InternalClassTransition::ProtoClass, Q_ASSERT, and UsedAsProto.
 Here is the call graph for this function:
 Here is the call graph for this function:| InternalClass * QV4::Heap::InternalClass::canned | ( | ) | 
Definition at line 692 of file qv4internalclass.cpp.
References engine, and sealed().
 Here is the call graph for this function:
 Here is the call graph for this function:| Heap::InternalClass * QV4::Heap::InternalClass::changeMember | ( | PropertyKey | identifier, | 
| PropertyAttributes | data, | ||
| InternalClassEntry * | entry = nullptr | ||
| ) | 
Definition at line 411 of file qv4internalclass.cpp.
References QV4::Heap::addDummyEntry(), QV4::Heap::cleanInternalClass(), e, engine, findEntry(), lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), propertyData, Q_ASSERT, and size.
Referenced by addMember(), addMember(), changeMember(), removeMember(), and QV4::ArrayObject::virtualDefineOwnProperty().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 288 of file qv4internalclass.cpp.
References changeMember(), QV4::Heap::Base::internalClass, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 447 of file qv4internalclass_p.h.
References prototype.
Referenced by QV4::ExecutionEngine::ExecutionEngine(), QV4::StringPrototype::init(), and QV4::Object::virtualSetPrototypeOf().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 442 of file qv4internalclass_p.h.
References vtable.
Referenced by QV4::ExecutionEngine::ExecutionEngine().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| InternalClass * QV4::Heap::InternalClass::cryopreserved | ( | ) | 
Definition at line 700 of file qv4internalclass.cpp.
References engine, and frozen().
 Here is the call graph for this function:
 Here is the call graph for this function:| void QV4::Heap::InternalClass::destroy | ( | ) | 
Definition at line 261 of file qv4internalclass.cpp.
References QV4::PropertyHash::~PropertyHash(), QV4::Heap::Base::destroy(), engine, QV4::Heap::Base::isMarked(), nameMap, parent, propertyData, propertyTable, Q_ASSERT, and transitions.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 355 of file qv4internalclass_p.h.
References QV4::Attr_Invalid, e, QV4::PropertyHash::lookup(), propertyData, propertyTable, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 344 of file qv4internalclass_p.h.
References e, QV4::PropertyHash::lookup(), propertyTable, and Q_ASSERT.
Referenced by addMember(), changeMember(), and removeMember().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 375 of file qv4internalclass_p.h.
References QV4::Attr_Invalid, e, QV4::PropertyHash::lookup(), propertyData, propertyTable, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 389 of file qv4internalclass_p.h.
References QV4::Attr_Invalid, e, QV4::PropertyHash::lookup(), propertyData, propertyTable, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| Heap::InternalClass * QV4::Heap::InternalClass::frozen | ( | ) | 
Definition at line 660 of file qv4internalclass.cpp.
References attrs, engine, QV4::InternalClassTransition::Frozen, Frozen, i, QV4::PropertyKey::invalid(), isFrozen(), lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), propertyData, Q_ASSERT, and size.
Referenced by cryopreserved().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 408 of file qv4internalclass_p.h.
References e, QV4::PropertyHash::lookup(), propertyData, propertyTable, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| void QV4::Heap::InternalClass::init | ( | ExecutionEngine * | engine | ) | 
Definition at line 217 of file qv4internalclass.cpp.
References engine, QV4::Heap::Base::init(), QV4::Heap::Base::internalClass, nameMap, QV4::ExecutionEngine::newProtoId(), propertyData, propertyTable, protoId, transitions, and vtable.
Referenced by QV4::ExecutionEngine::ExecutionEngine(), and QV4::ExecutionEngine::newClass().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void QV4::Heap::InternalClass::init | ( | Heap::InternalClass * | other | ) | 
Definition at line 241 of file qv4internalclass.cpp.
References engine, QV4::Heap::Base::init(), QV4::Heap::Base::internalClass, nameMap, QV4::ExecutionEngine::newProtoId(), numRedundantTransitions, other(), parent, propertyData, propertyTable, protoId, prototype, transitions, and vtable.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 325 of file qv4internalclass_p.h.
References NotExtensible.
Referenced by nonExtensible(), and QV4::Object::virtualSetPrototypeOf().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 327 of file qv4internalclass_p.h.
References Frozen.
Referenced by freeze_recursive(), frozen(), isImplicitlyFrozen(), sealed(), and QV4::QObjectWrapper::virtualPut().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool QV4::Heap::InternalClass::isImplicitlyFrozen | ( | ) | const | 
Definition at line 708 of file qv4internalclass.cpp.
References attrs, i, isFrozen(), propertyData, and size.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 329 of file qv4internalclass_p.h.
References Locked.
Referenced by locked(), QV4::ExecutionEngine::lockObject(), and QV4::Object::virtualSetPrototypeOf().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 326 of file qv4internalclass_p.h.
References Sealed.
Referenced by sealed().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inline | 
Definition at line 328 of file qv4internalclass_p.h.
References UsedAsProto.
Referenced by asProtoClass(), and updateProtoUsage().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Definition at line 283 of file qv4internalclass.cpp.
References nameMap.
Referenced by QV4DataCollector::collectScope(), and QV4::Module::virtualOwnPropertyKeys().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| InternalClass * QV4::Heap::InternalClass::locked | ( | ) | 
Definition at line 520 of file qv4internalclass.cpp.
References engine, flags, QV4::PropertyKey::invalid(), isLocked(), QV4::InternalClassTransition::Locked, Locked, lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| InternalClassTransition & QV4::Heap::InternalClass::lookupOrInsertTransition | ( | const InternalClassTransition & | t | ) | 
Definition at line 297 of file qv4internalclass.cpp.
References it, and transitions.
Referenced by asProtoClass(), changeMember(), frozen(), locked(), nonExtensible(), and sealed().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 762 of file qv4internalclass.cpp.
References QV4::Heap::Base::mark(), nameMap, parent, and prototype.
 Here is the call graph for this function:
 Here is the call graph for this function:| Heap::InternalClass * QV4::Heap::InternalClass::nonExtensible | ( | ) | 
Definition at line 502 of file qv4internalclass.cpp.
References engine, flags, QV4::PropertyKey::invalid(), isExtensible(), lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), QV4::InternalClassTransition::NotExtensible, NotExtensible, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | static | 
Definition at line 611 of file qv4internalclass.cpp.
References QV4::Attr_Invalid, changeMember(), findEntry(), QV4::Heap::Base::internalClass, Q_ASSERT, and size.
 Here is the call graph for this function:
 Here is the call graph for this function:| Heap::InternalClass * QV4::Heap::InternalClass::sealed | ( | ) | 
Definition at line 628 of file qv4internalclass.cpp.
References attrs, engine, i, QV4::PropertyKey::invalid(), isFrozen(), isSealed(), lookupOrInsertTransition(), QV4::ExecutionEngine::newClass(), propertyData, Q_ASSERT, QV4::InternalClassTransition::Sealed, Sealed, and size.
Referenced by canned().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void QV4::Heap::InternalClass::updateProtoUsage | ( | Heap::Object * | o | ) | 
Definition at line 753 of file qv4internalclass.cpp.
References QV4::EngineBase::Class_Empty, engine, QV4::EngineBase::internalClasses(), isUsedAsProto(), o, prototype, Q_ASSERT, and QV4::Heap::updateProtoUsage().
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | inline | 
Definition at line 421 of file qv4internalclass_p.h.
References e, QV4::PropertyHash::lookup(), propertyData, propertyTable, and Q_ASSERT.
 Here is the call graph for this function:
 Here is the call graph for this function:| 
 | friend | 
Definition at line 463 of file qv4internalclass_p.h.
| ExecutionEngine* QV4::Heap::InternalClass::engine | 
Definition at line 307 of file qv4internalclass_p.h.
Referenced by asProtoClass(), canned(), changeMember(), QV4::Heap::cleanInternalClass(), cryopreserved(), destroy(), frozen(), QV4::Heap::Atomics::init(), QV4::Heap::JsonObject::init(), QV4::Heap::MathObject::init(), QV4::Heap::Reflect::init(), QV4::Heap::NodePrototype::init(), QV4::Heap::QQuickJSContext2DPixelData::init(), QV4::Heap::ArrayObject::init(), QV4::Heap::ProxyFunctionObject::init(), init(), init(), instanceOfQObject(), locked(), QV4::FunctionObject::name(), nonExtensible(), QV4::Object::putValue(), QV4::Heap::VariantObject::removeVmePropertyReference(), sealed(), QV4::ArrayObject::toQStringList(), updateProtoUsage(), QV4::Heap::updateProtoUsage(), and QV4::Object::virtualInstanceOf().
| quint8 QV4::Heap::InternalClass::flags | 
Definition at line 323 of file qv4internalclass_p.h.
Referenced by asProtoClass(), locked(), and nonExtensible().
| SharedInternalClassData<PropertyKey> QV4::Heap::InternalClass::nameMap | 
Definition at line 314 of file qv4internalclass_p.h.
Referenced by QV4::Heap::addDummyEntry(), destroy(), freeze_recursive(), init(), init(), QV4::ExecutionEngine::initializeGlobal(), keyAt(), and markObjects().
| quint8 QV4::Heap::InternalClass::numRedundantTransitions | 
Definition at line 322 of file qv4internalclass_p.h.
Referenced by QV4::Heap::cleanInternalClass(), and init().
| InternalClass* QV4::Heap::InternalClass::parent | 
Definition at line 311 of file qv4internalclass_p.h.
Referenced by QV4::Heap::cleanInternalClass(), destroy(), init(), and markObjects().
| SharedInternalClassData<PropertyAttributes> QV4::Heap::InternalClass::propertyData | 
Definition at line 315 of file qv4internalclass_p.h.
Referenced by QV4::Heap::addDummyEntry(), changeMember(), destroy(), find(), findValueOrGetter(), findValueOrSetter(), frozen(), indexOfValueOrGetter(), init(), init(), isImplicitlyFrozen(), sealed(), and verifyIndex().
| PropertyHash QV4::Heap::InternalClass::propertyTable | 
Definition at line 313 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 309 of file qv4internalclass_p.h.
Referenced by init(), init(), and QV4::Heap::updateProtoUsage().
| Heap::Object* QV4::Heap::InternalClass::prototype | 
Definition at line 310 of file qv4internalclass_p.h.
Referenced by changePrototype(), init(), markObjects(), updateProtoUsage(), QV4::Heap::updateProtoUsage(), and QV4::Object::virtualSetPrototypeOf().
| uint QV4::Heap::InternalClass::size | 
Definition at line 321 of file qv4internalclass_p.h.
Referenced by QV4::Heap::addDummyEntry(), QV4::MemoryManager::allocateObject(), changeMember(), QV4DataCollector::collectScope(), freeze_recursive(), frozen(), isImplicitlyFrozen(), QV4::ExecutionContext::newBlockContext(), removeMember(), sealed(), and QV4::Module::virtualOwnPropertyKeys().
| std::vector<Transition> QV4::Heap::InternalClass::transitions | 
Definition at line 318 of file qv4internalclass_p.h.
Referenced by destroy(), init(), init(), lookupOrInsertTransition(), and QV4::Heap::updateProtoUsage().
| const VTable* QV4::Heap::InternalClass::vtable | 
Definition at line 308 of file qv4internalclass_p.h.
Referenced by QV4::MemoryManager::allocManaged(), changeVTable(), init(), and init().