Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Managed Struct Reference

#include <qv4managed_p.h>

Inheritance diagram for QV4::Managed:
Collaboration diagram for QV4::Managed:

Public Types

enum  {
  IsExecutionContext = false , IsString = false , IsStringOrSymbol = false , IsObject = false ,
  IsTailCallable = false , IsErrorObject = false , IsArrayData = false
}
enum  { NInlineProperties = 0 }
enum  Type {
  Type_Invalid , Type_String , Type_Object , Type_Symbol ,
  Type_ArrayObject , Type_FunctionObject , Type_GeneratorObject , Type_BooleanObject ,
  Type_NumberObject , Type_StringObject , Type_SymbolObject , Type_DateObject ,
  Type_RegExpObject , Type_ErrorObject , Type_ArgumentsObject , Type_JsonObject ,
  Type_MathObject , Type_ProxyObject , Type_UrlObject , Type_UrlSearchParamsObject ,
  Type_ExecutionContext , Type_InternalClass , Type_SetIteratorObject , Type_MapIteratorObject ,
  Type_ArrayIteratorObject , Type_StringIteratorObject , Type_ForInIterator , Type_RegExp ,
  Type_V4Sequence , Type_QmlListProperty , Type_V4QObjectWrapper , Type_QMLTypeWrapper ,
  Type_V4ReferenceObject , Type_QMLValueTypeWrapper , Type_MemberData , Type_ArrayData ,
  Type_StringOrSymbol
}
Public Types inherited from QV4::Value
using ManagedPtr = Managed *
Public Types inherited from QV4::StaticValue
enum class  TagBit {
  SpecialNegative = 0b10000000000000000000 << 12 , SpecialQNaN = 0b00000000000010000000 << 12 , Special = 0b00000000000001000000 << 12 , IntCompat = 0b00000000000000100000 << 12 ,
  Unmanaged = 0b00000000000000010000 << 12 , IntOrBool = 0b00000000000000001000 << 12 , Number = 0b00000000000000000100 << 12
}
enum  Type {
  Managed_Type = 0 , Double_Type = 1 , Undefined_Type = 2 , Empty_Type = quint32(TagBit::Unmanaged) ,
  Null_Type = Empty_Type | quint32(TagBit::IntCompat) , Boolean_Type = Null_Type | quint32(TagBit::IntOrBool) , Integer_Type = Boolean_Type | quint32(TagBit::Number)
}
enum  {
  Tag_Shift = 32 , IsIntegerConvertible_Shift = 48 , IsIntegerConvertible_Value = 3 , IsIntegerOrBool_Shift = 47 ,
  IsIntegerOrBool_Value = 7
}
enum class  QuickType : quint32 {
  Managed = Managed_Type , Empty = Empty_Type , Null = Null_Type , Boolean = Boolean_Type ,
  Integer = Integer_Type , PlusInf = quint32(TagBit::Number) | quint32(TagBit::Special) | quint32(TagBit::Unmanaged) , MinusInf = PlusInf | quint32(TagBit::SpecialNegative) , NaN = PlusInf | quint32(TagBit::SpecialQNaN) ,
  MinusNaN = NaN | quint32(TagBit::SpecialNegative)
}
enum  {
  QT_Empty = Empty_Type , QT_Null = Null_Type , QT_Bool = Boolean_Type , QT_Int = Integer_Type ,
  QuickType_Shift = Tag_Shift
}
using HeapBasePtr = Heap::Base *
using ValueTypeInternal = QuickType

Public Member Functions

Heap::InternalClassinternalClass () const
const VTablevtable () const
ExecutionEngineengine () const
bool isV4SequenceType () const
bool isV4QObjectWrapper () const
bool isQmlListPropertyType () const
bool isArrayLike () const
bool isArrayObject () const
bool isStringObject () const
bool isSymbolObject () const
QString className () const
bool isEqualTo (const Managed *other) const
bool inUse () const
bool markBit () const
void mark (MarkStack *markStack)
Q_ALWAYS_INLINE Heap::BaseheapObject () const
template<typename T>
T * cast ()
template<typename T>
const T * cast () const
Public Member Functions inherited from QV4::Value
bool isString () const
bool isStringOrSymbol () const
bool isSymbol () const
bool isObject () const
bool isFunctionObject () const
QML_NEARLY_ALWAYS_INLINE StringstringValue () const
QML_NEARLY_ALWAYS_INLINE StringOrSymbolstringOrSymbolValue () const
QML_NEARLY_ALWAYS_INLINE SymbolsymbolValue () const
QML_NEARLY_ALWAYS_INLINE ObjectobjectValue () const
QML_NEARLY_ALWAYS_INLINE ManagedPtr managed () const
QML_NEARLY_ALWAYS_INLINE Value::HeapBasePtr heapObject () const
int toUInt16 () const
int toInt32 () const
unsigned int toUInt32 () const
qint64 toLength () const
qint64 toIndex () const
bool toBoolean () const
double toInteger () const
ReturnedValue convertedToNumber () const
double toNumber () const
double toNumberImpl () const
QString toQStringNoThrow () const
QString toQString () const
QString toQString (bool *ok) const
Heap::StringtoString (ExecutionEngine *e) const
QV4::PropertyKey toPropertyKey (ExecutionEngine *e) const
Heap::Object * toObject (ExecutionEngine *e) const
bool isPrimitive () const
template<typename T>
const T * as () const
template<typename T>
T * as ()
template<typename T>
T * cast ()
template<typename T>
const T * cast () const
uint asArrayLength (bool *ok) const
bool sameValue (Value other) const
bool sameValueZero (Value other) const
void mark (MarkStack *markStack)
Valueoperator= (const ScopedValue &v)
Valueoperator= (ReturnedValue v)
Valueoperator= (ManagedPtr m)
Valueoperator= (HeapBasePtr o)
template<typename T>
Valueoperator= (const Scoped< T > &t)
template<>
const ArrayObjectas () const
template<>
const FunctionObjectas () const
template<>
const StringOrSymbolas () const
template<>
const Stringas () const
template<>
const DateObjectas () const
template<>
const Managedas () const
template<>
const Objectas () const
template<>
const ErrorObjectas () const
template<>
const UrlObjectas () const
template<>
const UrlSearchParamsObjectas () const
Public Member Functions inherited from QV4::StaticValue
 StaticValue ()=default
constexpr StaticValue (quint64 val)
StaticValueoperator= (ReturnedValue v)
template<typename Value>
StaticValueoperator= (const Value &)
template<typename Value>
const ValueasValue () const
template<typename Value>
ValueasValue ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64rawValueRef ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64 rawValue () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setRawValue (quint64 raw)
QV4_NEARLY_ALWAYS_INLINE constexpr void setTagValue (quint32 tag, quint32 value)
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 value () const
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 tag () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setTag (quint32 tag)
QV4_NEARLY_ALWAYS_INLINE constexpr int int_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setInt_32 (int i)
QV4_NEARLY_ALWAYS_INLINE uint uint_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setEmpty ()
Type type () const
quint64 quickType () const
bool isEmpty () const
bool isNull () const
bool isBoolean () const
bool isInteger () const
bool isNullOrUndefined () const
bool isUndefined () const
bool isDouble () const
bool isNumber () const
bool isManagedOrUndefined () const
bool isManaged () const
bool isIntOrBool () const
bool integerCompatible () const
bool isNaN () const
bool isPositiveInt () const
QV4_NEARLY_ALWAYS_INLINE double doubleValue () const
QV4_NEARLY_ALWAYS_INLINE void setDouble (double d)
bool isInt32 ()
double asDouble () const
bool booleanValue () const
int integerValue () const
bool tryIntegerConversion ()
bool toBoolean () const
int toInt32 () const
ReturnedValuedata_ptr ()
constexpr ReturnedValue asReturnedValue () const
template<>
StaticValueoperator= (const Value &value)
template<typename Managed>
StaticValueoperator= (const Managed &m)
template<>
ValueasValue ()
template<>
const ValueasValue () const

Static Public Member Functions

static QString typeToString (Type)
Static Public Member Functions inherited from QV4::Value
static constexpr Value fromStaticValue (StaticValue staticValue)
static constexpr Value undefined ()
static Value fromHeapObject (HeapBasePtr m)
static bool toBooleanImpl (Value val)
static double toNumberImpl (Value v)
static Heap::StringtoString (ExecutionEngine *e, Value val)
static Heap::Object * toObject (ExecutionEngine *e, Value val)
static constexpr Value fromReturnedValue (ReturnedValue val)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)
static constexpr Value emptyValue ()
static constexpr Value fromBoolean (bool b)
static constexpr Value fromInt32 (int i)
static constexpr Value undefinedValue ()
static constexpr Value nullValue ()
static Value fromDouble (double d)
static Value fromUInt32 (uint i)
Static Public Member Functions inherited from QV4::StaticValue
static int valueOffset ()
static int tagOffset ()
static constexpr quint64 tagValue (quint32 tag, quint32 value)
static constexpr quint64 tagBitMask (TagBit bit)
static bool integerCompatible (StaticValue a, StaticValue b)
static bool bothDouble (StaticValue a, StaticValue b)
static QV4_NEARLY_ALWAYS_INLINE bool isInt32 (double d)
static constexpr StaticValue fromReturnedValue (ReturnedValue val)
static constexpr StaticValue emptyValue ()
static constexpr StaticValue fromBoolean (bool b)
static constexpr StaticValue fromInt32 (int i)
static constexpr StaticValue undefinedValue ()
static constexpr StaticValue nullValue ()
static StaticValue fromDouble (double d)
static StaticValue fromUInt32 (uint i)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)

Static Protected Member Functions

static bool virtualIsEqualTo (Managed *m, Managed *other)

Friends

class MemoryManager
struct Identifiers
struct ObjectIterator

Additional Inherited Members

Public Attributes inherited from QV4::StaticValue
quint64 _val
Static Public Attributes inherited from QV4::StaticValue
static constexpr quint64 ExponentMask = 0b0111111111110000ull << 48
static constexpr quint64 Top1Mask = 0b1000000000000000ull << 48
static constexpr quint64 Upper3Mask = 0b0000000000001110ull << 48
static constexpr quint64 Lower5Mask = 0b0000000000011111ull
static constexpr quint64 ManagedMask = ExponentMask | quint64(TagBit::Unmanaged) << Tag_Shift
static constexpr quint64 DoubleMask = ManagedMask | quint64(TagBit::Special) << Tag_Shift
static constexpr quint64 NumberMask = ManagedMask | quint64(TagBit::Number) << Tag_Shift
static constexpr quint64 IntOrBoolMask = ManagedMask | quint64(TagBit::IntOrBool) << Tag_Shift
static constexpr quint64 IntCompatMask = ManagedMask | quint64(TagBit::IntCompat) << Tag_Shift
static constexpr quint64 EncodeMask = DoubleMask | NumberMask
static constexpr quint64 DoubleDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Special)) << Tag_Shift)
static constexpr quint64 NumberDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Number)) << Tag_Shift)
Static Protected Attributes inherited from QV4::VTableBase
static constexpr VTable::Destroy virtualDestroy = nullptr
static constexpr VTable::IsEqualTo virtualIsEqualTo = nullptr
static constexpr VTable::Get virtualGet = nullptr
static constexpr VTable::Put virtualPut = nullptr
static constexpr VTable::DeleteProperty virtualDeleteProperty = nullptr
static constexpr VTable::HasProperty virtualHasProperty = nullptr
static constexpr VTable::GetOwnProperty virtualGetOwnProperty = nullptr
static constexpr VTable::DefineOwnProperty virtualDefineOwnProperty = nullptr
static constexpr VTable::IsExtensible virtualIsExtensible = nullptr
static constexpr VTable::PreventExtensions virtualPreventExtensions = nullptr
static constexpr VTable::GetPrototypeOf virtualGetPrototypeOf = nullptr
static constexpr VTable::SetPrototypeOf virtualSetPrototypeOf = nullptr
static constexpr VTable::GetLength virtualGetLength = nullptr
static constexpr VTable::OwnPropertyKeys virtualOwnPropertyKeys = nullptr
static constexpr VTable::InstanceOf virtualInstanceOf = nullptr
static constexpr VTable::Call virtualCall = nullptr
static constexpr VTable::CallAsConstructor virtualCallAsConstructor = nullptr
static constexpr VTable::CallWithMetaTypes virtualCallWithMetaTypes = nullptr
static constexpr VTable::CallWithMetaTypes virtualConvertAndCall = nullptr
static constexpr VTable::ResolveLookupGetter virtualResolveLookupGetter = nullptr
static constexpr VTable::ResolveLookupSetter virtualResolveLookupSetter = nullptr
static constexpr VTable::Metacall virtualMetacall = nullptr

Detailed Description

Definition at line 73 of file qv4managed_p.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
IsExecutionContext 
IsString 
IsStringOrSymbol 
IsObject 
IsTailCallable 
IsErrorObject 
IsArrayData 

Definition at line 76 of file qv4managed_p.h.

◆ anonymous enum

anonymous enum
Enumerator
NInlineProperties 

Definition at line 91 of file qv4managed_p.h.

◆ Type

Enumerator
Type_Invalid 
Type_String 
Type_Object 
Type_Symbol 
Type_ArrayObject 
Type_FunctionObject 
Type_GeneratorObject 
Type_BooleanObject 
Type_NumberObject 
Type_StringObject 
Type_SymbolObject 
Type_DateObject 
Type_RegExpObject 
Type_ErrorObject 
Type_ArgumentsObject 
Type_JsonObject 
Type_MathObject 
Type_ProxyObject 
Type_UrlObject 
Type_UrlSearchParamsObject 
Type_ExecutionContext 
Type_InternalClass 
Type_SetIteratorObject 
Type_MapIteratorObject 
Type_ArrayIteratorObject 
Type_StringIteratorObject 
Type_ForInIterator 
Type_RegExp 
Type_V4Sequence 
Type_QmlListProperty 
Type_V4QObjectWrapper 
Type_QMLTypeWrapper 
Type_V4ReferenceObject 
Type_QMLValueTypeWrapper 
Type_MemberData 
Type_ArrayData 
Type_StringOrSymbol 

Definition at line 93 of file qv4managed_p.h.

Member Function Documentation

◆ cast() [1/2]

template<typename T>
T * QV4::Managed::cast ( )
inline

Definition at line 164 of file qv4managed_p.h.

◆ cast() [2/2]

template<typename T>
const T * QV4::Managed::cast ( ) const
inline

Definition at line 167 of file qv4managed_p.h.

◆ className()

QString Managed::className ( ) const

Definition at line 134 of file qv4managed.cpp.

◆ engine()

ExecutionEngine * QV4::Managed::engine ( ) const
inline

Definition at line 140 of file qv4managed_p.h.

◆ heapObject()

Q_ALWAYS_INLINE Heap::Base * QV4::Managed::heapObject ( ) const
inline

Definition at line 160 of file qv4managed_p.h.

◆ internalClass()

Heap::InternalClass * QV4::Managed::internalClass ( ) const
inline

Definition at line 138 of file qv4managed_p.h.

◆ inUse()

bool QV4::Managed::inUse ( ) const
inline

Definition at line 156 of file qv4managed_p.h.

◆ isArrayLike()

bool QV4::Managed::isArrayLike ( ) const
inline

Definition at line 145 of file qv4managed_p.h.

◆ isArrayObject()

bool QV4::Managed::isArrayObject ( ) const
inline

Definition at line 147 of file qv4managed_p.h.

◆ isEqualTo()

bool QV4::Managed::isEqualTo ( const Managed * other) const
inline

Definition at line 153 of file qv4managed_p.h.

◆ isQmlListPropertyType()

bool QV4::Managed::isQmlListPropertyType ( ) const
inline

Definition at line 144 of file qv4managed_p.h.

◆ isStringObject()

bool QV4::Managed::isStringObject ( ) const
inline

Definition at line 148 of file qv4managed_p.h.

◆ isSymbolObject()

bool QV4::Managed::isSymbolObject ( ) const
inline

Definition at line 149 of file qv4managed_p.h.

◆ isV4QObjectWrapper()

bool QV4::Managed::isV4QObjectWrapper ( ) const
inline

Definition at line 143 of file qv4managed_p.h.

◆ isV4SequenceType()

bool QV4::Managed::isV4SequenceType ( ) const
inline

Definition at line 142 of file qv4managed_p.h.

◆ mark()

void QV4::Managed::mark ( MarkStack * markStack)
inline

Definition at line 180 of file qv4managed_p.h.

◆ markBit()

bool QV4::Managed::markBit ( ) const
inline

Definition at line 157 of file qv4managed_p.h.

◆ typeToString()

QString Managed::typeToString ( Type t)
static

Definition at line 14 of file qv4managed.cpp.

◆ virtualIsEqualTo()

bool Managed::virtualIsEqualTo ( Managed * m,
Managed * other )
staticprotected

Definition at line 139 of file qv4managed.cpp.

◆ vtable()

const VTable * QV4::Managed::vtable ( ) const
inline

Definition at line 139 of file qv4managed_p.h.

◆ Identifiers

friend struct Identifiers
friend

Definition at line 176 of file qv4managed_p.h.

◆ MemoryManager

friend class MemoryManager
friend

Definition at line 175 of file qv4managed_p.h.

◆ ObjectIterator

friend struct ObjectIterator
friend

Definition at line 177 of file qv4managed_p.h.


The documentation for this struct was generated from the following files: