d->model = vim;
} else {
if (!d->ownModel) {
- d->model = new QSGVisualDataModel(qmlContext(this), this);
+ d->model = new QSGVisualDataModel(qmlContext(this));
d->ownModel = true;
}
if (QSGVisualDataModel *dataModel = qobject_cast<QSGVisualDataModel*>(d->model))
{
public:
UltraMaterial(bool withSprites=false)
- : timestamp(0)
+ : texture(0)
+ , colortable(0)
+ , sizetable(0)
+ , opacitytable(0)
+ , timestamp(0)
, framecount(1)
, animcount(1)
, usesSprites(withSprites)
~UltraMaterial()
{
- delete texture;
- delete colortable;
- delete sizetable;
- delete opacitytable;
+ if (texture)
+ delete texture;
+ if (colortable)
+ delete colortable;
+ if (sizetable)
+ delete sizetable;
+ if (opacitytable)
+ delete opacitytable;
}
virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; }
manageDelegates->start();
}
+QSGModelParticle::~QSGModelParticle()
+{
+ if (m_ownModel)
+ delete m_model;
+}
+
QVariant QSGModelParticle::model() const
{
return m_dataSource;
Q_CLASSINFO("DefaultProperty", "delegate")
public:
explicit QSGModelParticle(QSGItem *parent = 0);
+ virtual ~QSGModelParticle();
QVariant model() const;
void setModel(const QVariant &);
};
QDeclarativeOpenMetaObjectType::QDeclarativeOpenMetaObjectType(const QMetaObject *base, QDeclarativeEngine *engine)
- : d(new QDeclarativeOpenMetaObjectTypePrivate)
+ : QDeclarativeCleanup(engine), d(new QDeclarativeOpenMetaObjectTypePrivate)
{
d->engine = engine;
d->init(base);
delete d;
}
+void QDeclarativeOpenMetaObjectType::clear()
+{
+ d->engine = 0;
+}
int QDeclarativeOpenMetaObjectType::propertyOffset() const
{
#include <QtCore/QObject>
#include <private/qdeclarativerefcount_p.h>
+#include <private/qdeclarativecleanup_p.h>
#include <private/qdeclarativeglobal_p.h>
#include <private/qobject_p.h>
class QDeclarativeEngine;
class QMetaPropertyBuilder;
class QDeclarativeOpenMetaObjectTypePrivate;
-class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeOpenMetaObjectType : public QDeclarativeRefCount
+class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeOpenMetaObjectType : public QDeclarativeRefCount, public QDeclarativeCleanup
{
public:
QDeclarativeOpenMetaObjectType(const QMetaObject *base, QDeclarativeEngine *engine);
protected:
virtual void propertyCreated(int, QMetaPropertyBuilder &);
+ virtual void clear();
private:
QDeclarativeOpenMetaObjectTypePrivate *d;
widget->setVisible(true);
}
resize(widget->size());
+ }else{
+ delete obj;
}
}