18#include <private/qtqmlglobal_p.h>
19#include <private/qobject_p.h>
20#include <private/qqmlpropertyindex_p.h>
21#include <private/qv4value_p.h>
22#include <private/qv4persistent_p.h>
23#include <private/qqmlrefcount_p.h>
24#include <private/qqmlpropertycache_p.h>
31template <
class Key,
class T>
class QHash;
45class ExecutableCompilationUnit;
46namespace CompiledData {
63 static inline void init() {
64 static bool initialized =
false;
82 if (!explicitIndestructibleSet) indestructible =
false;
119 InlineBindingArraySize = 2
142 int endpointCount(
int index);
143 bool signalHasEndpoint(
int index)
const;
144 void disconnectNotifiers();
160 inline bool hasBindingBit(
int)
const;
162 inline void clearBindingBit(
int);
164 inline bool hasPendingBindingBit(
int index)
const;
165 inline void setPendingBindingBit(
QObject *
obj,
int);
166 inline void clearPendingBindingBit(
int);
191 void releaseDeferredData();
202 if (
priv->isDeletingChildren ||
priv->wasDeleted) {
205 }
else if (
priv->declarativeData) {
208 return createQQmlData(
priv);
217 if (
priv->isDeletingChildren ||
priv->wasDeleted)
219 if (
priv->declarativeData)
243 static inline bool wasDeleted(
const QObject *);
246 static void markAsDeleted(
QObject *);
247 static void setQueuedForDeletion(
QObject *);
249 static inline void flushPendingBinding(
QObject *
object,
int coreIndex);
250 void flushPendingBinding(
int coreIndex);
257 return createPropertyCache(
object);
273 if (bindingBitsArraySize <=
offset)
276 const BindingBitsType *
bits = (bindingBitsArraySize == InlineBindingArraySize) ? bindingBitsValue : bindingBits;
283 if (bindingBitsArraySize >
offset) {
284 BindingBitsType *
bits = (bindingBitsArraySize == InlineBindingArraySize) ? bindingBitsValue : bindingBits;
292 BindingBitsType *
bits = (bindingBitsArraySize == InlineBindingArraySize) ? bindingBitsValue : bindingBits;
305 if (!
priv ||
priv->wasDeleted ||
priv->isDeletingChildren)
327 }
else if (index < notifyList->notifiesSize) {
329 }
else if (index <= notifyList->maximumTodoIndex) {
333 if (index < notifyList->notifiesSize) {
354 return hasBitSet(coreIndex * 2);
361 setBit(
obj, coreIndex * 2);
368 clearBit(coreIndex * 2);
376 return hasBitSet(coreIndex * 2 + 1);
383 setBit(
obj, coreIndex * 2 + 1);
390 clearBit(coreIndex * 2 + 1);
396 if (
data &&
data->hasPendingBindingBit(coreIndex))
397 data->flushPendingBinding(coreIndex);
static bool(* isSignalConnected)(QAbstractDeclarativeData *, const QObject *, int)
static int(* receivers)(QAbstractDeclarativeData *, const QObject *, int)
static void(* destroyed)(QAbstractDeclarativeData *, QObject *)
static void(* signalEmitted)(QAbstractDeclarativeData *, QObject *, int, void **)
static QObjectPrivate * get(QObject *o)
The QQmlContext class defines a context within a QML engine.
void setPendingBindingBit(QObject *obj, int)
static void flushPendingBinding(QObject *object, int coreIndex)
static QQmlPropertyCache::ConstPtr ensurePropertyCache(QObject *object)
QQmlNotifierEndpoint * notify(int index)
bool hasExtendedData() const
QVector< DeferredData * > deferredData
QQmlRefPointer< QV4::ExecutableCompilationUnit > compilationUnit
QQmlPropertyCache::ConstPtr propertyCache
static QQmlData * get(const QObject *object)
quint32 hasTaintedV4Object
static bool keepAliveDuringGarbageCollection(const QObject *object)
bool signalHasEndpoint(int index) const
QQmlRefPointer< QQmlContextData > ownContext
void clearBindingBit(int)
bool hasPendingBindingBit(int index) const
std::vector< QQmlPropertyObserver > propertyObservers
quint32 explicitIndestructibleSet
quint32 hasInterceptorMetaObject
BindingBitsType * bindingBits
quint32 bindingBitsArraySize
void clearPendingBindingBit(int)
static bool wasDeleted(const QObject *)
static QQmlData * get(const QObjectPrivate *priv)
void setBindingBit(QObject *obj, int)
static QQmlData * get(QObjectPrivate *priv, bool create)
void setImplicitDestructible()
quint32 isQueuedForDeletion
static Q_ALWAYS_INLINE uint offsetForBit(int bit)
quint32 rootObjectInCreation
static QQmlData * get(QObject *object, bool create)
static Q_ALWAYS_INLINE BindingBitsType bitFlagForBit(int bit)
bool hasBindingBit(int) const
The QQmlEngine class provides an environment for instantiating QML components.
Combined button and popup list for selecting options.
\qmltype Particle \inqmlmodule QtQuick.Particles
static QDBusError::ErrorType get(const char *name)
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const void * bits
unsigned long long quint64
QQmlRefPointer< QQmlContextData > context
QQmlRefPointer< QV4::ExecutableCompilationUnit > compilationUnit
QMultiHash< int, const QV4::CompiledData::Binding * > bindings
Q_DISABLE_COPY(DeferredData)
QQmlNotifierEndpoint ** notifies
QQmlNotifierEndpoint * todo